Text Compare
Produced: 7/19/2015 9:50:22 AM
   
Mode:  All, With Context  
Left file: C:\mksong\workspace_genproglase\genproglase-output-r1658\template03\0718-1345\valgrind-bug-11821-11822\sanity\coregrind\m_gdbserver\m_gdbserver.c  
Right file: C:\mksong\workspace_genproglase\genproglase-output-r1658\template03\0718-1345\valgrind-bug-11821-11822\000000\coregrind\m_gdbserver\m_gdbserver.c  
1 typedef unsigned char UChar; = 1 typedef unsigned char UChar;
2 typedef signed char Char;   2 typedef signed char Char;
3 typedef char HChar;   3 typedef char HChar;
4 typedef unsigned short UShort;   4 typedef unsigned short UShort;
5 typedef short Short;   5 typedef short Short;
6 typedef unsigned int UInt;   6 typedef unsigned int UInt;
7 typedef int Int;   7 typedef int Int;
8 typedef unsigned long long ULong;   8 typedef unsigned long long ULong;
9 typedef long long Long;   9 typedef long long Long;
10 typedef UInt U128[4];   10 typedef UInt U128[4];
11 union __anonunion_V128_1 {   11 union __anonunion_V128_1 {
12    UChar w8[16] ;   12    UChar w8[16] ;
13    UShort w16[8] ;   13    UShort w16[8] ;
14    UInt w32[4] ;   14    UInt w32[4] ;
15    ULong w64[2] ;   15    ULong w64[2] ;
16 };   16 };
17 typedef union __anonunion_V128_1 V128;   17 typedef union __anonunion_V128_1 V128;
18 typedef float Float;   18 typedef float Float;
19 typedef double Double;   19 typedef double Double;
20 typedef unsigned char Bool;   20 typedef unsigned char Bool;
21 typedef UInt Addr32;   21 typedef UInt Addr32;
22 typedef ULong Addr64;   22 typedef ULong Addr64;
23 typedef unsigned long HWord;   23 typedef unsigned long HWord;
24 typedef __builtin_va_list __gnuc_va_list;   24 typedef __builtin_va_list __gnuc_va_list;
25 typedef __gnuc_va_list va_list;   25 typedef __gnuc_va_list va_list;
26 typedef unsigned long UWord;   26 typedef unsigned long UWord;
27 typedef long Word;   27 typedef long Word;
28 typedef UWord Addr;   28 typedef UWord Addr;
29 typedef UWord AddrH;   29 typedef UWord AddrH;
30 typedef UWord SizeT;   30 typedef UWord SizeT;
31 typedef Word SSizeT;   31 typedef Word SSizeT;
32 typedef Word PtrdiffT;   32 typedef Word PtrdiffT;
33 typedef Word OffT;   33 typedef Word OffT;
34 typedef Long Off64T;   34 typedef Long Off64T;
35 struct __anonstruct_UWordPair_2 {   35 struct __anonstruct_UWordPair_2 {
36    UWord uw1 ;   36    UWord uw1 ;
37    UWord uw2 ;   37    UWord uw2 ;
38 };   38 };
39 typedef struct __anonstruct_UWordPair_2 UWordPair;   39 typedef struct __anonstruct_UWordPair_2 UWordPair;
40 typedef UInt ThreadId;   40 typedef UInt ThreadId;
41 struct __anonstruct_SysRes_3 {   41 struct __anonstruct_SysRes_3 {
42    UWord _val ;   42    UWord _val ;
43    Bool _isError ;   43    Bool _isError ;
44 };   44 };
45 typedef struct __anonstruct_SysRes_3 SysRes;   45 typedef struct __anonstruct_SysRes_3 SysRes;
46 enum __anonenum_IRType_4 {   46 enum __anonenum_IRType_4 {
47     Ity_INVALID = 69632,   47     Ity_INVALID = 69632,
48     Ity_I1 = 69633,   48     Ity_I1 = 69633,
49     Ity_I8 = 69634,   49     Ity_I8 = 69634,
50     Ity_I16 = 69635,   50     Ity_I16 = 69635,
51     Ity_I32 = 69636,   51     Ity_I32 = 69636,
52     Ity_I64 = 69637,   52     Ity_I64 = 69637,
53     Ity_I128 = 69638,   53     Ity_I128 = 69638,
54     Ity_F32 = 69639,   54     Ity_F32 = 69639,
55     Ity_F64 = 69640,   55     Ity_F64 = 69640,
56     Ity_F128 = 69641,   56     Ity_F128 = 69641,
57     Ity_V128 = 69642   57     Ity_V128 = 69642
58 } ;   58 } ;
59 typedef enum __anonenum_IRType_4 IRType;   59 typedef enum __anonenum_IRType_4 IRType;
60 enum __anonenum_IREndness_5 {   60 enum __anonenum_IREndness_5 {
61     Iend_LE = 73728,   61     Iend_LE = 73728,
62     Iend_BE = 73729   62     Iend_BE = 73729
63 } ;   63 } ;
64 typedef enum __anonenum_IREndness_5 IREndness;   64 typedef enum __anonenum_IREndness_5 IREndness;
65 enum __anonenum_IRConstTag_6 {   65 enum __anonenum_IRConstTag_6 {
66     Ico_U1 = 77824,   66     Ico_U1 = 77824,
67     Ico_U8 = 77825,   67     Ico_U8 = 77825,
68     Ico_U16 = 77826,   68     Ico_U16 = 77826,
69     Ico_U32 = 77827,   69     Ico_U32 = 77827,
70     Ico_U64 = 77828,   70     Ico_U64 = 77828,
71     Ico_F32 = 77829,   71     Ico_F32 = 77829,
72     Ico_F32i = 77830,   72     Ico_F32i = 77830,
73     Ico_F64 = 77831,   73     Ico_F64 = 77831,
74     Ico_F64i = 77832,   74     Ico_F64i = 77832,
75     Ico_V128 = 77833   75     Ico_V128 = 77833
76 } ;   76 } ;
77 typedef enum __anonenum_IRConstTag_6 IRConstTag;   77 typedef enum __anonenum_IRConstTag_6 IRConstTag;
78 union __anonunion_Ico_7 {   78 union __anonunion_Ico_7 {
79    Bool U1 ;   79    Bool U1 ;
80    UChar U8 ;   80    UChar U8 ;
81    UShort U16 ;   81    UShort U16 ;
82    UInt U32 ;   82    UInt U32 ;
83    ULong U64 ;   83    ULong U64 ;
84    Float F32 ;   84    Float F32 ;
85    UInt F32i ;   85    UInt F32i ;
86    Double F64 ;   86    Double F64 ;
87    ULong F64i ;   87    ULong F64i ;
88    UShort V128 ;   88    UShort V128 ;
89 };   89 };
90 struct _IRConst {   90 struct _IRConst {
91    IRConstTag tag ;   91    IRConstTag tag ;
92    union __anonunion_Ico_7 Ico ;   92    union __anonunion_Ico_7 Ico ;
93 };   93 };
94 typedef struct _IRConst IRConst;   94 typedef struct _IRConst IRConst;
95 struct __anonstruct_IRCallee_8 {   95 struct __anonstruct_IRCallee_8 {
96    Int regparms ;   96    Int regparms ;
97    HChar *name ;   97    HChar *name ;
98    void *addr ;   98    void *addr ;
99    UInt mcx_mask ;   99    UInt mcx_mask ;
100 };   100 };
101 typedef struct __anonstruct_IRCallee_8 IRCallee;   101 typedef struct __anonstruct_IRCallee_8 IRCallee;
102 struct __anonstruct_IRRegArray_9 {   102 struct __anonstruct_IRRegArray_9 {
103    Int base ;   103    Int base ;
104    IRType elemTy ;   104    IRType elemTy ;
105    Int nElems ;   105    Int nElems ;
106 };   106 };
107 typedef struct __anonstruct_IRRegArray_9 IRRegArray;   107 typedef struct __anonstruct_IRRegArray_9 IRRegArray;
108 typedef UInt IRTemp;   108 typedef UInt IRTemp;
109 enum __anonenum_IROp_10 {   109 enum __anonenum_IROp_10 {
110     Iop_INVALID = 81920,   110     Iop_INVALID = 81920,
111     Iop_Add8 = 81921,   111     Iop_Add8 = 81921,
112     Iop_Add16 = 81922,   112     Iop_Add16 = 81922,
113     Iop_Add32 = 81923,   113     Iop_Add32 = 81923,
114     Iop_Add64 = 81924,   114     Iop_Add64 = 81924,
115     Iop_Sub8 = 81925,   115     Iop_Sub8 = 81925,
116     Iop_Sub16 = 81926,   116     Iop_Sub16 = 81926,
117     Iop_Sub32 = 81927,   117     Iop_Sub32 = 81927,
118     Iop_Sub64 = 81928,   118     Iop_Sub64 = 81928,
119     Iop_Mul8 = 81929,   119     Iop_Mul8 = 81929,
120     Iop_Mul16 = 81930,   120     Iop_Mul16 = 81930,
121     Iop_Mul32 = 81931,   121     Iop_Mul32 = 81931,
122     Iop_Mul64 = 81932,   122     Iop_Mul64 = 81932,
123     Iop_Or8 = 81933,   123     Iop_Or8 = 81933,
124     Iop_Or16 = 81934,   124     Iop_Or16 = 81934,
125     Iop_Or32 = 81935,   125     Iop_Or32 = 81935,
126     Iop_Or64 = 81936,   126     Iop_Or64 = 81936,
127     Iop_And8 = 81937,   127     Iop_And8 = 81937,
128     Iop_And16 = 81938,   128     Iop_And16 = 81938,
129     Iop_And32 = 81939,   129     Iop_And32 = 81939,
130     Iop_And64 = 81940,   130     Iop_And64 = 81940,
131     Iop_Xor8 = 81941,   131     Iop_Xor8 = 81941,
132     Iop_Xor16 = 81942,   132     Iop_Xor16 = 81942,
133     Iop_Xor32 = 81943,   133     Iop_Xor32 = 81943,
134     Iop_Xor64 = 81944,   134     Iop_Xor64 = 81944,
135     Iop_Shl8 = 81945,   135     Iop_Shl8 = 81945,
136     Iop_Shl16 = 81946,   136     Iop_Shl16 = 81946,
137     Iop_Shl32 = 81947,   137     Iop_Shl32 = 81947,
138     Iop_Shl64 = 81948,   138     Iop_Shl64 = 81948,
139     Iop_Shr8 = 81949,   139     Iop_Shr8 = 81949,
140     Iop_Shr16 = 81950,   140     Iop_Shr16 = 81950,
141     Iop_Shr32 = 81951,   141     Iop_Shr32 = 81951,
142     Iop_Shr64 = 81952,   142     Iop_Shr64 = 81952,
143     Iop_Sar8 = 81953,   143     Iop_Sar8 = 81953,
144     Iop_Sar16 = 81954,   144     Iop_Sar16 = 81954,
145     Iop_Sar32 = 81955,   145     Iop_Sar32 = 81955,
146     Iop_Sar64 = 81956,   146     Iop_Sar64 = 81956,
147     Iop_CmpEQ8 = 81957,   147     Iop_CmpEQ8 = 81957,
148     Iop_CmpEQ16 = 81958,   148     Iop_CmpEQ16 = 81958,
149     Iop_CmpEQ32 = 81959,   149     Iop_CmpEQ32 = 81959,
150     Iop_CmpEQ64 = 81960,   150     Iop_CmpEQ64 = 81960,
151     Iop_CmpNE8 = 81961,   151     Iop_CmpNE8 = 81961,
152     Iop_CmpNE16 = 81962,   152     Iop_CmpNE16 = 81962,
153     Iop_CmpNE32 = 81963,   153     Iop_CmpNE32 = 81963,
154     Iop_CmpNE64 = 81964,   154     Iop_CmpNE64 = 81964,
155     Iop_Not8 = 81965,   155     Iop_Not8 = 81965,
156     Iop_Not16 = 81966,   156     Iop_Not16 = 81966,
157     Iop_Not32 = 81967,   157     Iop_Not32 = 81967,
158     Iop_Not64 = 81968,   158     Iop_Not64 = 81968,
159     Iop_CasCmpEQ8 = 81969,   159     Iop_CasCmpEQ8 = 81969,
160     Iop_CasCmpEQ16 = 81970,   160     Iop_CasCmpEQ16 = 81970,
161     Iop_CasCmpEQ32 = 81971,   161     Iop_CasCmpEQ32 = 81971,
162     Iop_CasCmpEQ64 = 81972,   162     Iop_CasCmpEQ64 = 81972,
163     Iop_CasCmpNE8 = 81973,   163     Iop_CasCmpNE8 = 81973,
164     Iop_CasCmpNE16 = 81974,   164     Iop_CasCmpNE16 = 81974,
165     Iop_CasCmpNE32 = 81975,   165     Iop_CasCmpNE32 = 81975,
166     Iop_CasCmpNE64 = 81976,   166     Iop_CasCmpNE64 = 81976,
167     Iop_MullS8 = 81977,   167     Iop_MullS8 = 81977,
168     Iop_MullS16 = 81978,   168     Iop_MullS16 = 81978,
169     Iop_MullS32 = 81979,   169     Iop_MullS32 = 81979,
170     Iop_MullS64 = 81980,   170     Iop_MullS64 = 81980,
171     Iop_MullU8 = 81981,   171     Iop_MullU8 = 81981,
172     Iop_MullU16 = 81982,   172     Iop_MullU16 = 81982,
173     Iop_MullU32 = 81983,   173     Iop_MullU32 = 81983,
174     Iop_MullU64 = 81984,   174     Iop_MullU64 = 81984,
175     Iop_Clz64 = 81985,   175     Iop_Clz64 = 81985,
176     Iop_Clz32 = 81986,   176     Iop_Clz32 = 81986,
177     Iop_Ctz64 = 81987,   177     Iop_Ctz64 = 81987,
178     Iop_Ctz32 = 81988,   178     Iop_Ctz32 = 81988,
179     Iop_CmpLT32S = 81989,   179     Iop_CmpLT32S = 81989,
180     Iop_CmpLT64S = 81990,   180     Iop_CmpLT64S = 81990,
181     Iop_CmpLE32S = 81991,   181     Iop_CmpLE32S = 81991,
182     Iop_CmpLE64S = 81992,   182     Iop_CmpLE64S = 81992,
183     Iop_CmpLT32U = 81993,   183     Iop_CmpLT32U = 81993,
184     Iop_CmpLT64U = 81994,   184     Iop_CmpLT64U = 81994,
185     Iop_CmpLE32U = 81995,   185     Iop_CmpLE32U = 81995,
186     Iop_CmpLE64U = 81996,   186     Iop_CmpLE64U = 81996,
187     Iop_CmpNEZ8 = 81997,   187     Iop_CmpNEZ8 = 81997,
188     Iop_CmpNEZ16 = 81998,   188     Iop_CmpNEZ16 = 81998,
189     Iop_CmpNEZ32 = 81999,   189     Iop_CmpNEZ32 = 81999,
190     Iop_CmpNEZ64 = 82000,   190     Iop_CmpNEZ64 = 82000,
191     Iop_CmpwNEZ32 = 82001,   191     Iop_CmpwNEZ32 = 82001,
192     Iop_CmpwNEZ64 = 82002,   192     Iop_CmpwNEZ64 = 82002,
193     Iop_Left8 = 82003,   193     Iop_Left8 = 82003,
194     Iop_Left16 = 82004,   194     Iop_Left16 = 82004,
195     Iop_Left32 = 82005,   195     Iop_Left32 = 82005,
196     Iop_Left64 = 82006,   196     Iop_Left64 = 82006,
197     Iop_Max32U = 82007,   197     Iop_Max32U = 82007,
198     Iop_CmpORD32U = 82008,   198     Iop_CmpORD32U = 82008,
199     Iop_CmpORD64U = 82009,   199     Iop_CmpORD64U = 82009,
200     Iop_CmpORD32S = 82010,   200     Iop_CmpORD32S = 82010,
201     Iop_CmpORD64S = 82011,   201     Iop_CmpORD64S = 82011,
202     Iop_DivU32 = 82012,   202     Iop_DivU32 = 82012,
203     Iop_DivS32 = 82013,   203     Iop_DivS32 = 82013,
204     Iop_DivU64 = 82014,   204     Iop_DivU64 = 82014,
205     Iop_DivS64 = 82015,   205     Iop_DivS64 = 82015,
206     Iop_DivModU64to32 = 82016,   206     Iop_DivModU64to32 = 82016,
207     Iop_DivModS64to32 = 82017,   207     Iop_DivModS64to32 = 82017,
208     Iop_DivModU128to64 = 82018,   208     Iop_DivModU128to64 = 82018,
209     Iop_DivModS128to64 = 82019,   209     Iop_DivModS128to64 = 82019,
210     Iop_DivModS64to64 = 82020,   210     Iop_DivModS64to64 = 82020,
211     Iop_8Uto16 = 82021,   211     Iop_8Uto16 = 82021,
212     Iop_8Uto32 = 82022,   212     Iop_8Uto32 = 82022,
213     Iop_8Uto64 = 82023,   213     Iop_8Uto64 = 82023,
214     Iop_16Uto32 = 82024,   214     Iop_16Uto32 = 82024,
215     Iop_16Uto64 = 82025,   215     Iop_16Uto64 = 82025,
216     Iop_32Uto64 = 82026,   216     Iop_32Uto64 = 82026,
217     Iop_8Sto16 = 82027,   217     Iop_8Sto16 = 82027,
218     Iop_8Sto32 = 82028,   218     Iop_8Sto32 = 82028,
219     Iop_8Sto64 = 82029,   219     Iop_8Sto64 = 82029,
220     Iop_16Sto32 = 82030,   220     Iop_16Sto32 = 82030,
221     Iop_16Sto64 = 82031,   221     Iop_16Sto64 = 82031,
222     Iop_32Sto64 = 82032,   222     Iop_32Sto64 = 82032,
223     Iop_64to8 = 82033,   223     Iop_64to8 = 82033,
224     Iop_32to8 = 82034,   224     Iop_32to8 = 82034,
225     Iop_64to16 = 82035,   225     Iop_64to16 = 82035,
226     Iop_16to8 = 82036,   226     Iop_16to8 = 82036,
227     Iop_16HIto8 = 82037,   227     Iop_16HIto8 = 82037,
228     Iop_8HLto16 = 82038,   228     Iop_8HLto16 = 82038,
229     Iop_32to16 = 82039,   229     Iop_32to16 = 82039,
230     Iop_32HIto16 = 82040,   230     Iop_32HIto16 = 82040,
231     Iop_16HLto32 = 82041,   231     Iop_16HLto32 = 82041,
232     Iop_64to32 = 82042,   232     Iop_64to32 = 82042,
233     Iop_64HIto32 = 82043,   233     Iop_64HIto32 = 82043,
234     Iop_32HLto64 = 82044,   234     Iop_32HLto64 = 82044,
235     Iop_128to64 = 82045,   235     Iop_128to64 = 82045,
236     Iop_128HIto64 = 82046,   236     Iop_128HIto64 = 82046,
237     Iop_64HLto128 = 82047,   237     Iop_64HLto128 = 82047,
238     Iop_Not1 = 82048,   238     Iop_Not1 = 82048,
239     Iop_32to1 = 82049,   239     Iop_32to1 = 82049,
240     Iop_64to1 = 82050,   240     Iop_64to1 = 82050,
241     Iop_1Uto8 = 82051,   241     Iop_1Uto8 = 82051,
242     Iop_1Uto32 = 82052,   242     Iop_1Uto32 = 82052,
243     Iop_1Uto64 = 82053,   243     Iop_1Uto64 = 82053,
244     Iop_1Sto8 = 82054,   244     Iop_1Sto8 = 82054,
245     Iop_1Sto16 = 82055,   245     Iop_1Sto16 = 82055,
246     Iop_1Sto32 = 82056,   246     Iop_1Sto32 = 82056,
247     Iop_1Sto64 = 82057,   247     Iop_1Sto64 = 82057,
248     Iop_AddF64 = 82058,   248     Iop_AddF64 = 82058,
249     Iop_SubF64 = 82059,   249     Iop_SubF64 = 82059,
250     Iop_MulF64 = 82060,   250     Iop_MulF64 = 82060,
251     Iop_DivF64 = 82061,   251     Iop_DivF64 = 82061,
252     Iop_AddF32 = 82062,   252     Iop_AddF32 = 82062,
253     Iop_SubF32 = 82063,   253     Iop_SubF32 = 82063,
254     Iop_MulF32 = 82064,   254     Iop_MulF32 = 82064,
255     Iop_DivF32 = 82065,   255     Iop_DivF32 = 82065,
256     Iop_AddF64r32 = 82066,   256     Iop_AddF64r32 = 82066,
257     Iop_SubF64r32 = 82067,   257     Iop_SubF64r32 = 82067,
258     Iop_MulF64r32 = 82068,   258     Iop_MulF64r32 = 82068,
259     Iop_DivF64r32 = 82069,   259     Iop_DivF64r32 = 82069,
260     Iop_NegF64 = 82070,   260     Iop_NegF64 = 82070,
261     Iop_AbsF64 = 82071,   261     Iop_AbsF64 = 82071,
262     Iop_NegF32 = 82072,   262     Iop_NegF32 = 82072,
263     Iop_AbsF32 = 82073,   263     Iop_AbsF32 = 82073,
264     Iop_SqrtF64 = 82074,   264     Iop_SqrtF64 = 82074,
265     Iop_SqrtF64r32 = 82075,   265     Iop_SqrtF64r32 = 82075,
266     Iop_SqrtF32 = 82076,   266     Iop_SqrtF32 = 82076,
267     Iop_CmpF64 = 82077,   267     Iop_CmpF64 = 82077,
268     Iop_CmpF32 = 82078,   268     Iop_CmpF32 = 82078,
269     Iop_CmpF128 = 82079,   269     Iop_CmpF128 = 82079,
270     Iop_F64toI16S = 82080,   270     Iop_F64toI16S = 82080,
271     Iop_F64toI32S = 82081,   271     Iop_F64toI32S = 82081,
272     Iop_F64toI64S = 82082,   272     Iop_F64toI64S = 82082,
273     Iop_F64toI32U = 82083,   273     Iop_F64toI32U = 82083,
274     Iop_I16StoF64 = 82084,   274     Iop_I16StoF64 = 82084,
275     Iop_I32StoF64 = 82085,   275     Iop_I32StoF64 = 82085,
276     Iop_I64StoF64 = 82086,   276     Iop_I64StoF64 = 82086,
277     Iop_I64UtoF64 = 82087,   277     Iop_I64UtoF64 = 82087,
278     Iop_I64UtoF32 = 82088,   278     Iop_I64UtoF32 = 82088,
279     Iop_I32UtoF64 = 82089,   279     Iop_I32UtoF64 = 82089,
280     Iop_F32toI16S = 82090,   280     Iop_F32toI16S = 82090,
281     Iop_F32toI32S = 82091,   281     Iop_F32toI32S = 82091,
282     Iop_F32toI64S = 82092,   282     Iop_F32toI64S = 82092,
283     Iop_I16StoF32 = 82093,   283     Iop_I16StoF32 = 82093,
284     Iop_I32StoF32 = 82094,   284     Iop_I32StoF32 = 82094,
285     Iop_I64StoF32 = 82095,   285     Iop_I64StoF32 = 82095,
286     Iop_F32toF64 = 82096,   286     Iop_F32toF64 = 82096,
287     Iop_F64toF32 = 82097,   287     Iop_F64toF32 = 82097,
288     Iop_ReinterpF64asI64 = 82098,   288     Iop_ReinterpF64asI64 = 82098,
289     Iop_ReinterpI64asF64 = 82099,   289     Iop_ReinterpI64asF64 = 82099,
290     Iop_ReinterpF32asI32 = 82100,   290     Iop_ReinterpF32asI32 = 82100,
291     Iop_ReinterpI32asF32 = 82101,   291     Iop_ReinterpI32asF32 = 82101,
292     Iop_F64HLtoF128 = 82102,   292     Iop_F64HLtoF128 = 82102,
293     Iop_F128HItoF64 = 82103,   293     Iop_F128HItoF64 = 82103,
294     Iop_F128LOtoF64 = 82104,   294     Iop_F128LOtoF64 = 82104,
295     Iop_AddF128 = 82105,   295     Iop_AddF128 = 82105,
296     Iop_SubF128 = 82106,   296     Iop_SubF128 = 82106,
297     Iop_MulF128 = 82107,   297     Iop_MulF128 = 82107,
298     Iop_DivF128 = 82108,   298     Iop_DivF128 = 82108,
299     Iop_NegF128 = 82109,   299     Iop_NegF128 = 82109,
300     Iop_AbsF128 = 82110,   300     Iop_AbsF128 = 82110,
301     Iop_SqrtF128 = 82111,   301     Iop_SqrtF128 = 82111,
302     Iop_I32StoF128 = 82112,   302     Iop_I32StoF128 = 82112,
303     Iop_I64StoF128 = 82113,   303     Iop_I64StoF128 = 82113,
304     Iop_F32toF128 = 82114,   304     Iop_F32toF128 = 82114,
305     Iop_F64toF128 = 82115,   305     Iop_F64toF128 = 82115,
306     Iop_F128toI32S = 82116,   306     Iop_F128toI32S = 82116,
307     Iop_F128toI64S = 82117,   307     Iop_F128toI64S = 82117,
308     Iop_F128toF64 = 82118,   308     Iop_F128toF64 = 82118,
309     Iop_F128toF32 = 82119,   309     Iop_F128toF32 = 82119,
310     Iop_AtanF64 = 82120,   310     Iop_AtanF64 = 82120,
311     Iop_Yl2xF64 = 82121,   311     Iop_Yl2xF64 = 82121,
312     Iop_Yl2xp1F64 = 82122,   312     Iop_Yl2xp1F64 = 82122,
313     Iop_PRemF64 = 82123,   313     Iop_PRemF64 = 82123,
314     Iop_PRemC3210F64 = 82124,   314     Iop_PRemC3210F64 = 82124,
315     Iop_PRem1F64 = 82125,   315     Iop_PRem1F64 = 82125,
316     Iop_PRem1C3210F64 = 82126,   316     Iop_PRem1C3210F64 = 82126,
317     Iop_ScaleF64 = 82127,   317     Iop_ScaleF64 = 82127,
318     Iop_SinF64 = 82128,   318     Iop_SinF64 = 82128,
319     Iop_CosF64 = 82129,   319     Iop_CosF64 = 82129,
320     Iop_TanF64 = 82130,   320     Iop_TanF64 = 82130,
321     Iop_2xm1F64 = 82131,   321     Iop_2xm1F64 = 82131,
322     Iop_RoundF64toInt = 82132,   322     Iop_RoundF64toInt = 82132,
323     Iop_RoundF32toInt = 82133,   323     Iop_RoundF32toInt = 82133,
324     Iop_MAddF32 = 82134,   324     Iop_MAddF32 = 82134,
325     Iop_MSubF32 = 82135,   325     Iop_MSubF32 = 82135,
326     Iop_MAddF64 = 82136,   326     Iop_MAddF64 = 82136,
327     Iop_MSubF64 = 82137,   327     Iop_MSubF64 = 82137,
328     Iop_MAddF64r32 = 82138,   328     Iop_MAddF64r32 = 82138,
329     Iop_MSubF64r32 = 82139,   329     Iop_MSubF64r32 = 82139,
330     Iop_Est5FRSqrt = 82140,   330     Iop_Est5FRSqrt = 82140,
331     Iop_RoundF64toF64_NEAREST = 82141,   331     Iop_RoundF64toF64_NEAREST = 82141,
332     Iop_RoundF64toF64_NegINF = 82142,   332     Iop_RoundF64toF64_NegINF = 82142,
333     Iop_RoundF64toF64_PosINF = 82143,   333     Iop_RoundF64toF64_PosINF = 82143,
334     Iop_RoundF64toF64_ZERO = 82144,   334     Iop_RoundF64toF64_ZERO = 82144,
335     Iop_TruncF64asF32 = 82145,   335     Iop_TruncF64asF32 = 82145,
336     Iop_RoundF64toF32 = 82146,   336     Iop_RoundF64toF32 = 82146,
337     Iop_CalcFPRF = 82147,   337     Iop_CalcFPRF = 82147,
338     Iop_Add16x2 = 82148,   338     Iop_Add16x2 = 82148,
339     Iop_Sub16x2 = 82149,   339     Iop_Sub16x2 = 82149,
340     Iop_QAdd16Sx2 = 82150,   340     Iop_QAdd16Sx2 = 82150,
341     Iop_QAdd16Ux2 = 82151,   341     Iop_QAdd16Ux2 = 82151,
342     Iop_QSub16Sx2 = 82152,   342     Iop_QSub16Sx2 = 82152,
343     Iop_QSub16Ux2 = 82153,   343     Iop_QSub16Ux2 = 82153,
344     Iop_HAdd16Ux2 = 82154,   344     Iop_HAdd16Ux2 = 82154,
345     Iop_HAdd16Sx2 = 82155,   345     Iop_HAdd16Sx2 = 82155,
346     Iop_HSub16Ux2 = 82156,   346     Iop_HSub16Ux2 = 82156,
347     Iop_HSub16Sx2 = 82157,   347     Iop_HSub16Sx2 = 82157,
348     Iop_Add8x4 = 82158,   348     Iop_Add8x4 = 82158,
349     Iop_Sub8x4 = 82159,   349     Iop_Sub8x4 = 82159,
350     Iop_QAdd8Sx4 = 82160,   350     Iop_QAdd8Sx4 = 82160,
351     Iop_QAdd8Ux4 = 82161,   351     Iop_QAdd8Ux4 = 82161,
352     Iop_QSub8Sx4 = 82162,   352     Iop_QSub8Sx4 = 82162,
353     Iop_QSub8Ux4 = 82163,   353     Iop_QSub8Ux4 = 82163,
354     Iop_HAdd8Ux4 = 82164,   354     Iop_HAdd8Ux4 = 82164,
355     Iop_HAdd8Sx4 = 82165,   355     Iop_HAdd8Sx4 = 82165,
356     Iop_HSub8Ux4 = 82166,   356     Iop_HSub8Ux4 = 82166,
357     Iop_HSub8Sx4 = 82167,   357     Iop_HSub8Sx4 = 82167,
358     Iop_Sad8Ux4 = 82168,   358     Iop_Sad8Ux4 = 82168,
359     Iop_CmpNEZ16x2 = 82169,   359     Iop_CmpNEZ16x2 = 82169,
360     Iop_CmpNEZ8x4 = 82170,   360     Iop_CmpNEZ8x4 = 82170,
361     Iop_I32UtoFx2 = 82171,   361     Iop_I32UtoFx2 = 82171,
362     Iop_I32StoFx2 = 82172,   362     Iop_I32StoFx2 = 82172,
363     Iop_FtoI32Ux2_RZ = 82173,   363     Iop_FtoI32Ux2_RZ = 82173,
364     Iop_FtoI32Sx2_RZ = 82174,   364     Iop_FtoI32Sx2_RZ = 82174,
365     Iop_F32ToFixed32Ux2_RZ = 82175,   365     Iop_F32ToFixed32Ux2_RZ = 82175,
366     Iop_F32ToFixed32Sx2_RZ = 82176,   366     Iop_F32ToFixed32Sx2_RZ = 82176,
367     Iop_Fixed32UToF32x2_RN = 82177,   367     Iop_Fixed32UToF32x2_RN = 82177,
368     Iop_Fixed32SToF32x2_RN = 82178,   368     Iop_Fixed32SToF32x2_RN = 82178,
369     Iop_Max32Fx2 = 82179,   369     Iop_Max32Fx2 = 82179,
370     Iop_Min32Fx2 = 82180,   370     Iop_Min32Fx2 = 82180,
371     Iop_PwMax32Fx2 = 82181,   371     Iop_PwMax32Fx2 = 82181,
372     Iop_PwMin32Fx2 = 82182,   372     Iop_PwMin32Fx2 = 82182,
373     Iop_CmpEQ32Fx2 = 82183,   373     Iop_CmpEQ32Fx2 = 82183,
374     Iop_CmpGT32Fx2 = 82184,   374     Iop_CmpGT32Fx2 = 82184,
375     Iop_CmpGE32Fx2 = 82185,   375     Iop_CmpGE32Fx2 = 82185,
376     Iop_Recip32Fx2 = 82186,   376     Iop_Recip32Fx2 = 82186,
377     Iop_Recps32Fx2 = 82187,   377     Iop_Recps32Fx2 = 82187,
378     Iop_Rsqrte32Fx2 = 82188,   378     Iop_Rsqrte32Fx2 = 82188,
379     Iop_Rsqrts32Fx2 = 82189,   379     Iop_Rsqrts32Fx2 = 82189,
380     Iop_Neg32Fx2 = 82190,   380     Iop_Neg32Fx2 = 82190,
381     Iop_Abs32Fx2 = 82191,   381     Iop_Abs32Fx2 = 82191,
382     Iop_CmpNEZ8x8 = 82192,   382     Iop_CmpNEZ8x8 = 82192,
383     Iop_CmpNEZ16x4 = 82193,   383     Iop_CmpNEZ16x4 = 82193,
384     Iop_CmpNEZ32x2 = 82194,   384     Iop_CmpNEZ32x2 = 82194,
385     Iop_Add8x8 = 82195,   385     Iop_Add8x8 = 82195,
386     Iop_Add16x4 = 82196,   386     Iop_Add16x4 = 82196,
387     Iop_Add32x2 = 82197,   387     Iop_Add32x2 = 82197,
388     Iop_QAdd8Ux8 = 82198,   388     Iop_QAdd8Ux8 = 82198,
389     Iop_QAdd16Ux4 = 82199,   389     Iop_QAdd16Ux4 = 82199,
390     Iop_QAdd32Ux2 = 82200,   390     Iop_QAdd32Ux2 = 82200,
391     Iop_QAdd64Ux1 = 82201,   391     Iop_QAdd64Ux1 = 82201,
392     Iop_QAdd8Sx8 = 82202,   392     Iop_QAdd8Sx8 = 82202,
393     Iop_QAdd16Sx4 = 82203,   393     Iop_QAdd16Sx4 = 82203,
394     Iop_QAdd32Sx2 = 82204,   394     Iop_QAdd32Sx2 = 82204,
395     Iop_QAdd64Sx1 = 82205,   395     Iop_QAdd64Sx1 = 82205,
396     Iop_PwAdd8x8 = 82206,   396     Iop_PwAdd8x8 = 82206,
397     Iop_PwAdd16x4 = 82207,   397     Iop_PwAdd16x4 = 82207,
398     Iop_PwAdd32x2 = 82208,   398     Iop_PwAdd32x2 = 82208,
399     Iop_PwMax8Sx8 = 82209,   399     Iop_PwMax8Sx8 = 82209,
400     Iop_PwMax16Sx4 = 82210,   400     Iop_PwMax16Sx4 = 82210,
401     Iop_PwMax32Sx2 = 82211,   401     Iop_PwMax32Sx2 = 82211,
402     Iop_PwMax8Ux8 = 82212,   402     Iop_PwMax8Ux8 = 82212,
403     Iop_PwMax16Ux4 = 82213,   403     Iop_PwMax16Ux4 = 82213,
404     Iop_PwMax32Ux2 = 82214,   404     Iop_PwMax32Ux2 = 82214,
405     Iop_PwMin8Sx8 = 82215,   405     Iop_PwMin8Sx8 = 82215,
406     Iop_PwMin16Sx4 = 82216,   406     Iop_PwMin16Sx4 = 82216,
407     Iop_PwMin32Sx2 = 82217,   407     Iop_PwMin32Sx2 = 82217,
408     Iop_PwMin8Ux8 = 82218,   408     Iop_PwMin8Ux8 = 82218,
409     Iop_PwMin16Ux4 = 82219,   409     Iop_PwMin16Ux4 = 82219,
410     Iop_PwMin32Ux2 = 82220,   410     Iop_PwMin32Ux2 = 82220,
411     Iop_PwAddL8Ux8 = 82221,   411     Iop_PwAddL8Ux8 = 82221,
412     Iop_PwAddL16Ux4 = 82222,   412     Iop_PwAddL16Ux4 = 82222,
413     Iop_PwAddL32Ux2 = 82223,   413     Iop_PwAddL32Ux2 = 82223,
414     Iop_PwAddL8Sx8 = 82224,   414     Iop_PwAddL8Sx8 = 82224,
415     Iop_PwAddL16Sx4 = 82225,   415     Iop_PwAddL16Sx4 = 82225,
416     Iop_PwAddL32Sx2 = 82226,   416     Iop_PwAddL32Sx2 = 82226,
417     Iop_Sub8x8 = 82227,   417     Iop_Sub8x8 = 82227,
418     Iop_Sub16x4 = 82228,   418     Iop_Sub16x4 = 82228,
419     Iop_Sub32x2 = 82229,   419     Iop_Sub32x2 = 82229,
420     Iop_QSub8Ux8 = 82230,   420     Iop_QSub8Ux8 = 82230,
421     Iop_QSub16Ux4 = 82231,   421     Iop_QSub16Ux4 = 82231,
422     Iop_QSub32Ux2 = 82232,   422     Iop_QSub32Ux2 = 82232,
423     Iop_QSub64Ux1 = 82233,   423     Iop_QSub64Ux1 = 82233,
424     Iop_QSub8Sx8 = 82234,   424     Iop_QSub8Sx8 = 82234,
425     Iop_QSub16Sx4 = 82235,   425     Iop_QSub16Sx4 = 82235,
426     Iop_QSub32Sx2 = 82236,   426     Iop_QSub32Sx2 = 82236,
427     Iop_QSub64Sx1 = 82237,   427     Iop_QSub64Sx1 = 82237,
428     Iop_Abs8x8 = 82238,   428     Iop_Abs8x8 = 82238,
429     Iop_Abs16x4 = 82239,   429     Iop_Abs16x4 = 82239,
430     Iop_Abs32x2 = 82240,   430     Iop_Abs32x2 = 82240,
431     Iop_Mul8x8 = 82241,   431     Iop_Mul8x8 = 82241,
432     Iop_Mul16x4 = 82242,   432     Iop_Mul16x4 = 82242,
433     Iop_Mul32x2 = 82243,   433     Iop_Mul32x2 = 82243,
434     Iop_Mul32Fx2 = 82244,   434     Iop_Mul32Fx2 = 82244,
435     Iop_MulHi16Ux4 = 82245,   435     Iop_MulHi16Ux4 = 82245,
436     Iop_MulHi16Sx4 = 82246,   436     Iop_MulHi16Sx4 = 82246,
437     Iop_PolynomialMul8x8 = 82247,   437     Iop_PolynomialMul8x8 = 82247,
438     Iop_QDMulHi16Sx4 = 82248,   438     Iop_QDMulHi16Sx4 = 82248,
439     Iop_QDMulHi32Sx2 = 82249,   439     Iop_QDMulHi32Sx2 = 82249,
440     Iop_QRDMulHi16Sx4 = 82250,   440     Iop_QRDMulHi16Sx4 = 82250,
441     Iop_QRDMulHi32Sx2 = 82251,   441     Iop_QRDMulHi32Sx2 = 82251,
442     Iop_Avg8Ux8 = 82252,   442     Iop_Avg8Ux8 = 82252,
443     Iop_Avg16Ux4 = 82253,   443     Iop_Avg16Ux4 = 82253,
444     Iop_Max8Sx8 = 82254,   444     Iop_Max8Sx8 = 82254,
445     Iop_Max16Sx4 = 82255,   445     Iop_Max16Sx4 = 82255,
446     Iop_Max32Sx2 = 82256,   446     Iop_Max32Sx2 = 82256,
447     Iop_Max8Ux8 = 82257,   447     Iop_Max8Ux8 = 82257,
448     Iop_Max16Ux4 = 82258,   448     Iop_Max16Ux4 = 82258,
449     Iop_Max32Ux2 = 82259,   449     Iop_Max32Ux2 = 82259,
450     Iop_Min8Sx8 = 82260,   450     Iop_Min8Sx8 = 82260,
451     Iop_Min16Sx4 = 82261,   451     Iop_Min16Sx4 = 82261,
452     Iop_Min32Sx2 = 82262,   452     Iop_Min32Sx2 = 82262,
453     Iop_Min8Ux8 = 82263,   453     Iop_Min8Ux8 = 82263,
454     Iop_Min16Ux4 = 82264,   454     Iop_Min16Ux4 = 82264,
455     Iop_Min32Ux2 = 82265,   455     Iop_Min32Ux2 = 82265,
456     Iop_CmpEQ8x8 = 82266,   456     Iop_CmpEQ8x8 = 82266,
457     Iop_CmpEQ16x4 = 82267,   457     Iop_CmpEQ16x4 = 82267,
458     Iop_CmpEQ32x2 = 82268,   458     Iop_CmpEQ32x2 = 82268,
459     Iop_CmpGT8Ux8 = 82269,   459     Iop_CmpGT8Ux8 = 82269,
460     Iop_CmpGT16Ux4 = 82270,   460     Iop_CmpGT16Ux4 = 82270,
461     Iop_CmpGT32Ux2 = 82271,   461     Iop_CmpGT32Ux2 = 82271,
462     Iop_CmpGT8Sx8 = 82272,   462     Iop_CmpGT8Sx8 = 82272,
463     Iop_CmpGT16Sx4 = 82273,   463     Iop_CmpGT16Sx4 = 82273,
464     Iop_CmpGT32Sx2 = 82274,   464     Iop_CmpGT32Sx2 = 82274,
465     Iop_Cnt8x8 = 82275,   465     Iop_Cnt8x8 = 82275,
466     Iop_Clz8Sx8 = 82276,   466     Iop_Clz8Sx8 = 82276,
467     Iop_Clz16Sx4 = 82277,   467     Iop_Clz16Sx4 = 82277,
468     Iop_Clz32Sx2 = 82278,   468     Iop_Clz32Sx2 = 82278,
469     Iop_Cls8Sx8 = 82279,   469     Iop_Cls8Sx8 = 82279,
470     Iop_Cls16Sx4 = 82280,   470     Iop_Cls16Sx4 = 82280,
471     Iop_Cls32Sx2 = 82281,   471     Iop_Cls32Sx2 = 82281,
472     Iop_Shl8x8 = 82282,   472     Iop_Shl8x8 = 82282,
473     Iop_Shl16x4 = 82283,   473     Iop_Shl16x4 = 82283,
474     Iop_Shl32x2 = 82284,   474     Iop_Shl32x2 = 82284,
475     Iop_Shr8x8 = 82285,   475     Iop_Shr8x8 = 82285,
476     Iop_Shr16x4 = 82286,   476     Iop_Shr16x4 = 82286,
477     Iop_Shr32x2 = 82287,   477     Iop_Shr32x2 = 82287,
478     Iop_Sar8x8 = 82288,   478     Iop_Sar8x8 = 82288,
479     Iop_Sar16x4 = 82289,   479     Iop_Sar16x4 = 82289,
480     Iop_Sar32x2 = 82290,   480     Iop_Sar32x2 = 82290,
481     Iop_Sal8x8 = 82291,   481     Iop_Sal8x8 = 82291,
482     Iop_Sal16x4 = 82292,   482     Iop_Sal16x4 = 82292,
483     Iop_Sal32x2 = 82293,   483     Iop_Sal32x2 = 82293,
484     Iop_Sal64x1 = 82294,   484     Iop_Sal64x1 = 82294,
485     Iop_ShlN8x8 = 82295,   485     Iop_ShlN8x8 = 82295,
486     Iop_ShlN16x4 = 82296,   486     Iop_ShlN16x4 = 82296,
487     Iop_ShlN32x2 = 82297,   487     Iop_ShlN32x2 = 82297,
488     Iop_ShrN8x8 = 82298,   488     Iop_ShrN8x8 = 82298,
489     Iop_ShrN16x4 = 82299,   489     Iop_ShrN16x4 = 82299,
490     Iop_ShrN32x2 = 82300,   490     Iop_ShrN32x2 = 82300,
491     Iop_SarN8x8 = 82301,   491     Iop_SarN8x8 = 82301,
492     Iop_SarN16x4 = 82302,   492     Iop_SarN16x4 = 82302,
493     Iop_SarN32x2 = 82303,   493     Iop_SarN32x2 = 82303,
494     Iop_QShl8x8 = 82304,   494     Iop_QShl8x8 = 82304,
495     Iop_QShl16x4 = 82305,   495     Iop_QShl16x4 = 82305,
496     Iop_QShl32x2 = 82306,   496     Iop_QShl32x2 = 82306,
497     Iop_QShl64x1 = 82307,   497     Iop_QShl64x1 = 82307,
498     Iop_QSal8x8 = 82308,   498     Iop_QSal8x8 = 82308,
499     Iop_QSal16x4 = 82309,   499     Iop_QSal16x4 = 82309,
500     Iop_QSal32x2 = 82310,   500     Iop_QSal32x2 = 82310,
501     Iop_QSal64x1 = 82311,   501     Iop_QSal64x1 = 82311,
502     Iop_QShlN8Sx8 = 82312,   502     Iop_QShlN8Sx8 = 82312,
503     Iop_QShlN16Sx4 = 82313,   503     Iop_QShlN16Sx4 = 82313,
504     Iop_QShlN32Sx2 = 82314,   504     Iop_QShlN32Sx2 = 82314,
505     Iop_QShlN64Sx1 = 82315,   505     Iop_QShlN64Sx1 = 82315,
506     Iop_QShlN8x8 = 82316,   506     Iop_QShlN8x8 = 82316,
507     Iop_QShlN16x4 = 82317,   507     Iop_QShlN16x4 = 82317,
508     Iop_QShlN32x2 = 82318,   508     Iop_QShlN32x2 = 82318,
509     Iop_QShlN64x1 = 82319,   509     Iop_QShlN64x1 = 82319,
510     Iop_QSalN8x8 = 82320,   510     Iop_QSalN8x8 = 82320,
511     Iop_QSalN16x4 = 82321,   511     Iop_QSalN16x4 = 82321,
512     Iop_QSalN32x2 = 82322,   512     Iop_QSalN32x2 = 82322,
513     Iop_QSalN64x1 = 82323,   513     Iop_QSalN64x1 = 82323,
514     Iop_QNarrowBin16Sto8Ux8 = 82324,   514     Iop_QNarrowBin16Sto8Ux8 = 82324,
515     Iop_QNarrowBin16Sto8Sx8 = 82325,   515     Iop_QNarrowBin16Sto8Sx8 = 82325,
516     Iop_QNarrowBin32Sto16Sx4 = 82326,   516     Iop_QNarrowBin32Sto16Sx4 = 82326,
517     Iop_InterleaveHI8x8 = 82327,   517     Iop_InterleaveHI8x8 = 82327,
518     Iop_InterleaveHI16x4 = 82328,   518     Iop_InterleaveHI16x4 = 82328,
519     Iop_InterleaveHI32x2 = 82329,   519     Iop_InterleaveHI32x2 = 82329,
520     Iop_InterleaveLO8x8 = 82330,   520     Iop_InterleaveLO8x8 = 82330,
521     Iop_InterleaveLO16x4 = 82331,   521     Iop_InterleaveLO16x4 = 82331,
522     Iop_InterleaveLO32x2 = 82332,   522     Iop_InterleaveLO32x2 = 82332,
523     Iop_InterleaveOddLanes8x8 = 82333,   523     Iop_InterleaveOddLanes8x8 = 82333,
524     Iop_InterleaveEvenLanes8x8 = 82334,   524     Iop_InterleaveEvenLanes8x8 = 82334,
525     Iop_InterleaveOddLanes16x4 = 82335,   525     Iop_InterleaveOddLanes16x4 = 82335,
526     Iop_InterleaveEvenLanes16x4 = 82336,   526     Iop_InterleaveEvenLanes16x4 = 82336,
527     Iop_CatOddLanes8x8 = 82337,   527     Iop_CatOddLanes8x8 = 82337,
528     Iop_CatOddLanes16x4 = 82338,   528     Iop_CatOddLanes16x4 = 82338,
529     Iop_CatEvenLanes8x8 = 82339,   529     Iop_CatEvenLanes8x8 = 82339,
530     Iop_CatEvenLanes16x4 = 82340,   530     Iop_CatEvenLanes16x4 = 82340,
531     Iop_GetElem8x8 = 82341,   531     Iop_GetElem8x8 = 82341,
532     Iop_GetElem16x4 = 82342,   532     Iop_GetElem16x4 = 82342,
533     Iop_GetElem32x2 = 82343,   533     Iop_GetElem32x2 = 82343,
534     Iop_SetElem8x8 = 82344,   534     Iop_SetElem8x8 = 82344,
535     Iop_SetElem16x4 = 82345,   535     Iop_SetElem16x4 = 82345,
536     Iop_SetElem32x2 = 82346,   536     Iop_SetElem32x2 = 82346,
537     Iop_Dup8x8 = 82347,   537     Iop_Dup8x8 = 82347,
538     Iop_Dup16x4 = 82348,   538     Iop_Dup16x4 = 82348,
539     Iop_Dup32x2 = 82349,   539     Iop_Dup32x2 = 82349,
540     Iop_Extract64 = 82350,   540     Iop_Extract64 = 82350,
541     Iop_Reverse16_8x8 = 82351,   541     Iop_Reverse16_8x8 = 82351,
542     Iop_Reverse32_8x8 = 82352,   542     Iop_Reverse32_8x8 = 82352,
543     Iop_Reverse32_16x4 = 82353,   543     Iop_Reverse32_16x4 = 82353,
544     Iop_Reverse64_8x8 = 82354,   544     Iop_Reverse64_8x8 = 82354,
545     Iop_Reverse64_16x4 = 82355,   545     Iop_Reverse64_16x4 = 82355,
546     Iop_Reverse64_32x2 = 82356,   546     Iop_Reverse64_32x2 = 82356,
547     Iop_Perm8x8 = 82357,   547     Iop_Perm8x8 = 82357,
548     Iop_Recip32x2 = 82358,   548     Iop_Recip32x2 = 82358,
549     Iop_Rsqrte32x2 = 82359,   549     Iop_Rsqrte32x2 = 82359,
550     Iop_Add32Fx4 = 82360,   550     Iop_Add32Fx4 = 82360,
551     Iop_Sub32Fx4 = 82361,   551     Iop_Sub32Fx4 = 82361,
552     Iop_Mul32Fx4 = 82362,   552     Iop_Mul32Fx4 = 82362,
553     Iop_Div32Fx4 = 82363,   553     Iop_Div32Fx4 = 82363,
554     Iop_Max32Fx4 = 82364,   554     Iop_Max32Fx4 = 82364,
555     Iop_Min32Fx4 = 82365,   555     Iop_Min32Fx4 = 82365,
556     Iop_Add32Fx2 = 82366,   556     Iop_Add32Fx2 = 82366,
557     Iop_Sub32Fx2 = 82367,   557     Iop_Sub32Fx2 = 82367,
558     Iop_CmpEQ32Fx4 = 82368,   558     Iop_CmpEQ32Fx4 = 82368,
559     Iop_CmpLT32Fx4 = 82369,   559     Iop_CmpLT32Fx4 = 82369,
560     Iop_CmpLE32Fx4 = 82370,   560     Iop_CmpLE32Fx4 = 82370,
561     Iop_CmpUN32Fx4 = 82371,   561     Iop_CmpUN32Fx4 = 82371,
562     Iop_CmpGT32Fx4 = 82372,   562     Iop_CmpGT32Fx4 = 82372,
563     Iop_CmpGE32Fx4 = 82373,   563     Iop_CmpGE32Fx4 = 82373,
564     Iop_Abs32Fx4 = 82374,   564     Iop_Abs32Fx4 = 82374,
565     Iop_PwMax32Fx4 = 82375,   565     Iop_PwMax32Fx4 = 82375,
566     Iop_PwMin32Fx4 = 82376,   566     Iop_PwMin32Fx4 = 82376,
567     Iop_Sqrt32Fx4 = 82377,   567     Iop_Sqrt32Fx4 = 82377,
568     Iop_RSqrt32Fx4 = 82378,   568     Iop_RSqrt32Fx4 = 82378,
569     Iop_Neg32Fx4 = 82379,   569     Iop_Neg32Fx4 = 82379,
570     Iop_Recip32Fx4 = 82380,   570     Iop_Recip32Fx4 = 82380,
571     Iop_Recps32Fx4 = 82381,   571     Iop_Recps32Fx4 = 82381,
572     Iop_Rsqrte32Fx4 = 82382,   572     Iop_Rsqrte32Fx4 = 82382,
573     Iop_Rsqrts32Fx4 = 82383,   573     Iop_Rsqrts32Fx4 = 82383,
574     Iop_I32UtoFx4 = 82384,   574     Iop_I32UtoFx4 = 82384,
575     Iop_I32StoFx4 = 82385,   575     Iop_I32StoFx4 = 82385,
576     Iop_FtoI32Ux4_RZ = 82386,   576     Iop_FtoI32Ux4_RZ = 82386,
577     Iop_FtoI32Sx4_RZ = 82387,   577     Iop_FtoI32Sx4_RZ = 82387,
578     Iop_QFtoI32Ux4_RZ = 82388,   578     Iop_QFtoI32Ux4_RZ = 82388,
579     Iop_QFtoI32Sx4_RZ = 82389,   579     Iop_QFtoI32Sx4_RZ = 82389,
580     Iop_RoundF32x4_RM = 82390,   580     Iop_RoundF32x4_RM = 82390,
581     Iop_RoundF32x4_RP = 82391,   581     Iop_RoundF32x4_RP = 82391,
582     Iop_RoundF32x4_RN = 82392,   582     Iop_RoundF32x4_RN = 82392,
583     Iop_RoundF32x4_RZ = 82393,   583     Iop_RoundF32x4_RZ = 82393,
584     Iop_F32ToFixed32Ux4_RZ = 82394,   584     Iop_F32ToFixed32Ux4_RZ = 82394,
585     Iop_F32ToFixed32Sx4_RZ = 82395,   585     Iop_F32ToFixed32Sx4_RZ = 82395,
586     Iop_Fixed32UToF32x4_RN = 82396,   586     Iop_Fixed32UToF32x4_RN = 82396,
587     Iop_Fixed32SToF32x4_RN = 82397,   587     Iop_Fixed32SToF32x4_RN = 82397,
588     Iop_F32toF16x4 = 82398,   588     Iop_F32toF16x4 = 82398,
589     Iop_F16toF32x4 = 82399,   589     Iop_F16toF32x4 = 82399,
590     Iop_Add32F0x4 = 82400,   590     Iop_Add32F0x4 = 82400,
591     Iop_Sub32F0x4 = 82401,   591     Iop_Sub32F0x4 = 82401,
592     Iop_Mul32F0x4 = 82402,   592     Iop_Mul32F0x4 = 82402,
593     Iop_Div32F0x4 = 82403,   593     Iop_Div32F0x4 = 82403,
594     Iop_Max32F0x4 = 82404,   594     Iop_Max32F0x4 = 82404,
595     Iop_Min32F0x4 = 82405,   595     Iop_Min32F0x4 = 82405,
596     Iop_CmpEQ32F0x4 = 82406,   596     Iop_CmpEQ32F0x4 = 82406,
597     Iop_CmpLT32F0x4 = 82407,   597     Iop_CmpLT32F0x4 = 82407,
598     Iop_CmpLE32F0x4 = 82408,   598     Iop_CmpLE32F0x4 = 82408,
599     Iop_CmpUN32F0x4 = 82409,   599     Iop_CmpUN32F0x4 = 82409,
600     Iop_Recip32F0x4 = 82410,   600     Iop_Recip32F0x4 = 82410,
601     Iop_Sqrt32F0x4 = 82411,   601     Iop_Sqrt32F0x4 = 82411,
602     Iop_RSqrt32F0x4 = 82412,   602     Iop_RSqrt32F0x4 = 82412,
603     Iop_Add64Fx2 = 82413,   603     Iop_Add64Fx2 = 82413,
604     Iop_Sub64Fx2 = 82414,   604     Iop_Sub64Fx2 = 82414,
605     Iop_Mul64Fx2 = 82415,   605     Iop_Mul64Fx2 = 82415,
606     Iop_Div64Fx2 = 82416,   606     Iop_Div64Fx2 = 82416,
607     Iop_Max64Fx2 = 82417,   607     Iop_Max64Fx2 = 82417,
608     Iop_Min64Fx2 = 82418,   608     Iop_Min64Fx2 = 82418,
609     Iop_CmpEQ64Fx2 = 82419,   609     Iop_CmpEQ64Fx2 = 82419,
610     Iop_CmpLT64Fx2 = 82420,   610     Iop_CmpLT64Fx2 = 82420,
611     Iop_CmpLE64Fx2 = 82421,   611     Iop_CmpLE64Fx2 = 82421,
612     Iop_CmpUN64Fx2 = 82422,   612     Iop_CmpUN64Fx2 = 82422,
613     Iop_Recip64Fx2 = 82423,   613     Iop_Recip64Fx2 = 82423,
614     Iop_Sqrt64Fx2 = 82424,   614     Iop_Sqrt64Fx2 = 82424,
615     Iop_RSqrt64Fx2 = 82425,   615     Iop_RSqrt64Fx2 = 82425,
616     Iop_Add64F0x2 = 82426,   616     Iop_Add64F0x2 = 82426,
617     Iop_Sub64F0x2 = 82427,   617     Iop_Sub64F0x2 = 82427,
618     Iop_Mul64F0x2 = 82428,   618     Iop_Mul64F0x2 = 82428,
619     Iop_Div64F0x2 = 82429,   619     Iop_Div64F0x2 = 82429,
620     Iop_Max64F0x2 = 82430,   620     Iop_Max64F0x2 = 82430,
621     Iop_Min64F0x2 = 82431,   621     Iop_Min64F0x2 = 82431,
622     Iop_CmpEQ64F0x2 = 82432,   622     Iop_CmpEQ64F0x2 = 82432,
623     Iop_CmpLT64F0x2 = 82433,   623     Iop_CmpLT64F0x2 = 82433,
624     Iop_CmpLE64F0x2 = 82434,   624     Iop_CmpLE64F0x2 = 82434,
625     Iop_CmpUN64F0x2 = 82435,   625     Iop_CmpUN64F0x2 = 82435,
626     Iop_Recip64F0x2 = 82436,   626     Iop_Recip64F0x2 = 82436,
627     Iop_Sqrt64F0x2 = 82437,   627     Iop_Sqrt64F0x2 = 82437,
628     Iop_RSqrt64F0x2 = 82438,   628     Iop_RSqrt64F0x2 = 82438,
629     Iop_V128to64 = 82439,   629     Iop_V128to64 = 82439,
630     Iop_V128HIto64 = 82440,   630     Iop_V128HIto64 = 82440,
631     Iop_64HLtoV128 = 82441,   631     Iop_64HLtoV128 = 82441,
632     Iop_64UtoV128 = 82442,   632     Iop_64UtoV128 = 82442,
633     Iop_SetV128lo64 = 82443,   633     Iop_SetV128lo64 = 82443,
634     Iop_32UtoV128 = 82444,   634     Iop_32UtoV128 = 82444,
635     Iop_V128to32 = 82445,   635     Iop_V128to32 = 82445,
636     Iop_SetV128lo32 = 82446,   636     Iop_SetV128lo32 = 82446,
637     Iop_NotV128 = 82447,   637     Iop_NotV128 = 82447,
638     Iop_AndV128 = 82448,   638     Iop_AndV128 = 82448,
639     Iop_OrV128 = 82449,   639     Iop_OrV128 = 82449,
640     Iop_XorV128 = 82450,   640     Iop_XorV128 = 82450,
641     Iop_ShlV128 = 82451,   641     Iop_ShlV128 = 82451,
642     Iop_ShrV128 = 82452,   642     Iop_ShrV128 = 82452,
643     Iop_CmpNEZ8x16 = 82453,   643     Iop_CmpNEZ8x16 = 82453,
644     Iop_CmpNEZ16x8 = 82454,   644     Iop_CmpNEZ16x8 = 82454,
645     Iop_CmpNEZ32x4 = 82455,   645     Iop_CmpNEZ32x4 = 82455,
646     Iop_CmpNEZ64x2 = 82456,   646     Iop_CmpNEZ64x2 = 82456,
647     Iop_Add8x16 = 82457,   647     Iop_Add8x16 = 82457,
648     Iop_Add16x8 = 82458,   648     Iop_Add16x8 = 82458,
649     Iop_Add32x4 = 82459,   649     Iop_Add32x4 = 82459,
650     Iop_Add64x2 = 82460,   650     Iop_Add64x2 = 82460,
651     Iop_QAdd8Ux16 = 82461,   651     Iop_QAdd8Ux16 = 82461,
652     Iop_QAdd16Ux8 = 82462,   652     Iop_QAdd16Ux8 = 82462,
653     Iop_QAdd32Ux4 = 82463,   653     Iop_QAdd32Ux4 = 82463,
654     Iop_QAdd64Ux2 = 82464,   654     Iop_QAdd64Ux2 = 82464,
655     Iop_QAdd8Sx16 = 82465,   655     Iop_QAdd8Sx16 = 82465,
656     Iop_QAdd16Sx8 = 82466,   656     Iop_QAdd16Sx8 = 82466,
657     Iop_QAdd32Sx4 = 82467,   657     Iop_QAdd32Sx4 = 82467,
658     Iop_QAdd64Sx2 = 82468,   658     Iop_QAdd64Sx2 = 82468,
659     Iop_Sub8x16 = 82469,   659     Iop_Sub8x16 = 82469,
660     Iop_Sub16x8 = 82470,   660     Iop_Sub16x8 = 82470,
661     Iop_Sub32x4 = 82471,   661     Iop_Sub32x4 = 82471,
662     Iop_Sub64x2 = 82472,   662     Iop_Sub64x2 = 82472,
663     Iop_QSub8Ux16 = 82473,   663     Iop_QSub8Ux16 = 82473,
664     Iop_QSub16Ux8 = 82474,   664     Iop_QSub16Ux8 = 82474,
665     Iop_QSub32Ux4 = 82475,   665     Iop_QSub32Ux4 = 82475,
666     Iop_QSub64Ux2 = 82476,   666     Iop_QSub64Ux2 = 82476,
667     Iop_QSub8Sx16 = 82477,   667     Iop_QSub8Sx16 = 82477,
668     Iop_QSub16Sx8 = 82478,   668     Iop_QSub16Sx8 = 82478,
669     Iop_QSub32Sx4 = 82479,   669     Iop_QSub32Sx4 = 82479,
670     Iop_QSub64Sx2 = 82480,   670     Iop_QSub64Sx2 = 82480,
671     Iop_Mul8x16 = 82481,   671     Iop_Mul8x16 = 82481,
672     Iop_Mul16x8 = 82482,   672     Iop_Mul16x8 = 82482,
673     Iop_Mul32x4 = 82483,   673     Iop_Mul32x4 = 82483,
674     Iop_MulHi16Ux8 = 82484,   674     Iop_MulHi16Ux8 = 82484,
675     Iop_MulHi32Ux4 = 82485,   675     Iop_MulHi32Ux4 = 82485,
676     Iop_MulHi16Sx8 = 82486,   676     Iop_MulHi16Sx8 = 82486,
677     Iop_MulHi32Sx4 = 82487,   677     Iop_MulHi32Sx4 = 82487,
678     Iop_MullEven8Ux16 = 82488,   678     Iop_MullEven8Ux16 = 82488,
679     Iop_MullEven16Ux8 = 82489,   679     Iop_MullEven16Ux8 = 82489,
680     Iop_MullEven8Sx16 = 82490,   680     Iop_MullEven8Sx16 = 82490,
681     Iop_MullEven16Sx8 = 82491,   681     Iop_MullEven16Sx8 = 82491,
682     Iop_Mull8Ux8 = 82492,   682     Iop_Mull8Ux8 = 82492,
683     Iop_Mull8Sx8 = 82493,   683     Iop_Mull8Sx8 = 82493,
684     Iop_Mull16Ux4 = 82494,   684     Iop_Mull16Ux4 = 82494,
685     Iop_Mull16Sx4 = 82495,   685     Iop_Mull16Sx4 = 82495,
686     Iop_Mull32Ux2 = 82496,   686     Iop_Mull32Ux2 = 82496,
687     Iop_Mull32Sx2 = 82497,   687     Iop_Mull32Sx2 = 82497,
688     Iop_QDMulHi16Sx8 = 82498,   688     Iop_QDMulHi16Sx8 = 82498,
689     Iop_QDMulHi32Sx4 = 82499,   689     Iop_QDMulHi32Sx4 = 82499,
690     Iop_QRDMulHi16Sx8 = 82500,   690     Iop_QRDMulHi16Sx8 = 82500,
691     Iop_QRDMulHi32Sx4 = 82501,   691     Iop_QRDMulHi32Sx4 = 82501,
692     Iop_QDMulLong16Sx4 = 82502,   692     Iop_QDMulLong16Sx4 = 82502,
693     Iop_QDMulLong32Sx2 = 82503,   693     Iop_QDMulLong32Sx2 = 82503,
694     Iop_PolynomialMul8x16 = 82504,   694     Iop_PolynomialMul8x16 = 82504,
695     Iop_PolynomialMull8x8 = 82505,   695     Iop_PolynomialMull8x8 = 82505,
696     Iop_PwAdd8x16 = 82506,   696     Iop_PwAdd8x16 = 82506,
697     Iop_PwAdd16x8 = 82507,   697     Iop_PwAdd16x8 = 82507,
698     Iop_PwAdd32x4 = 82508,   698     Iop_PwAdd32x4 = 82508,
699     Iop_PwAdd32Fx2 = 82509,   699     Iop_PwAdd32Fx2 = 82509,
700     Iop_PwAddL8Ux16 = 82510,   700     Iop_PwAddL8Ux16 = 82510,
701     Iop_PwAddL16Ux8 = 82511,   701     Iop_PwAddL16Ux8 = 82511,
702     Iop_PwAddL32Ux4 = 82512,   702     Iop_PwAddL32Ux4 = 82512,
703     Iop_PwAddL8Sx16 = 82513,   703     Iop_PwAddL8Sx16 = 82513,
704     Iop_PwAddL16Sx8 = 82514,   704     Iop_PwAddL16Sx8 = 82514,
705     Iop_PwAddL32Sx4 = 82515,   705     Iop_PwAddL32Sx4 = 82515,
706     Iop_Abs8x16 = 82516,   706     Iop_Abs8x16 = 82516,
707     Iop_Abs16x8 = 82517,   707     Iop_Abs16x8 = 82517,
708     Iop_Abs32x4 = 82518,   708     Iop_Abs32x4 = 82518,
709     Iop_Avg8Ux16 = 82519,   709     Iop_Avg8Ux16 = 82519,
710     Iop_Avg16Ux8 = 82520,   710     Iop_Avg16Ux8 = 82520,
711     Iop_Avg32Ux4 = 82521,   711     Iop_Avg32Ux4 = 82521,
712     Iop_Avg8Sx16 = 82522,   712     Iop_Avg8Sx16 = 82522,
713     Iop_Avg16Sx8 = 82523,   713     Iop_Avg16Sx8 = 82523,
714     Iop_Avg32Sx4 = 82524,   714     Iop_Avg32Sx4 = 82524,
715     Iop_Max8Sx16 = 82525,   715     Iop_Max8Sx16 = 82525,
716     Iop_Max16Sx8 = 82526,   716     Iop_Max16Sx8 = 82526,
717     Iop_Max32Sx4 = 82527,   717     Iop_Max32Sx4 = 82527,
718     Iop_Max8Ux16 = 82528,   718     Iop_Max8Ux16 = 82528,
719     Iop_Max16Ux8 = 82529,   719     Iop_Max16Ux8 = 82529,
720     Iop_Max32Ux4 = 82530,   720     Iop_Max32Ux4 = 82530,
721     Iop_Min8Sx16 = 82531,   721     Iop_Min8Sx16 = 82531,
722     Iop_Min16Sx8 = 82532,   722     Iop_Min16Sx8 = 82532,
723     Iop_Min32Sx4 = 82533,   723     Iop_Min32Sx4 = 82533,
724     Iop_Min8Ux16 = 82534,   724     Iop_Min8Ux16 = 82534,
725     Iop_Min16Ux8 = 82535,   725     Iop_Min16Ux8 = 82535,
726     Iop_Min32Ux4 = 82536,   726     Iop_Min32Ux4 = 82536,
727     Iop_CmpEQ8x16 = 82537,   727     Iop_CmpEQ8x16 = 82537,
728     Iop_CmpEQ16x8 = 82538,   728     Iop_CmpEQ16x8 = 82538,
729     Iop_CmpEQ32x4 = 82539,   729     Iop_CmpEQ32x4 = 82539,
730     Iop_CmpGT8Sx16 = 82540,   730     Iop_CmpGT8Sx16 = 82540,
731     Iop_CmpGT16Sx8 = 82541,   731     Iop_CmpGT16Sx8 = 82541,
732     Iop_CmpGT32Sx4 = 82542,   732     Iop_CmpGT32Sx4 = 82542,
733     Iop_CmpGT64Sx2 = 82543,   733     Iop_CmpGT64Sx2 = 82543,
734     Iop_CmpGT8Ux16 = 82544,   734     Iop_CmpGT8Ux16 = 82544,
735     Iop_CmpGT16Ux8 = 82545,   735     Iop_CmpGT16Ux8 = 82545,
736     Iop_CmpGT32Ux4 = 82546,   736     Iop_CmpGT32Ux4 = 82546,
737     Iop_Cnt8x16 = 82547,   737     Iop_Cnt8x16 = 82547,
738     Iop_Clz8Sx16 = 82548,   738     Iop_Clz8Sx16 = 82548,
739     Iop_Clz16Sx8 = 82549,   739     Iop_Clz16Sx8 = 82549,
740     Iop_Clz32Sx4 = 82550,   740     Iop_Clz32Sx4 = 82550,
741     Iop_Cls8Sx16 = 82551,   741     Iop_Cls8Sx16 = 82551,
742     Iop_Cls16Sx8 = 82552,   742     Iop_Cls16Sx8 = 82552,
743     Iop_Cls32Sx4 = 82553,   743     Iop_Cls32Sx4 = 82553,
744     Iop_ShlN8x16 = 82554,   744     Iop_ShlN8x16 = 82554,
745     Iop_ShlN16x8 = 82555,   745     Iop_ShlN16x8 = 82555,
746     Iop_ShlN32x4 = 82556,   746     Iop_ShlN32x4 = 82556,
747     Iop_ShlN64x2 = 82557,   747     Iop_ShlN64x2 = 82557,
748     Iop_ShrN8x16 = 82558,   748     Iop_ShrN8x16 = 82558,
749     Iop_ShrN16x8 = 82559,   749     Iop_ShrN16x8 = 82559,
750     Iop_ShrN32x4 = 82560,   750     Iop_ShrN32x4 = 82560,
751     Iop_ShrN64x2 = 82561,   751     Iop_ShrN64x2 = 82561,
752     Iop_SarN8x16 = 82562,   752     Iop_SarN8x16 = 82562,
753     Iop_SarN16x8 = 82563,   753     Iop_SarN16x8 = 82563,
754     Iop_SarN32x4 = 82564,   754     Iop_SarN32x4 = 82564,
755     Iop_SarN64x2 = 82565,   755     Iop_SarN64x2 = 82565,
756     Iop_Shl8x16 = 82566,   756     Iop_Shl8x16 = 82566,
757     Iop_Shl16x8 = 82567,   757     Iop_Shl16x8 = 82567,
758     Iop_Shl32x4 = 82568,   758     Iop_Shl32x4 = 82568,
759     Iop_Shl64x2 = 82569,   759     Iop_Shl64x2 = 82569,
760     Iop_Shr8x16 = 82570,   760     Iop_Shr8x16 = 82570,
761     Iop_Shr16x8 = 82571,   761     Iop_Shr16x8 = 82571,
762     Iop_Shr32x4 = 82572,   762     Iop_Shr32x4 = 82572,
763     Iop_Shr64x2 = 82573,   763     Iop_Shr64x2 = 82573,
764     Iop_Sar8x16 = 82574,   764     Iop_Sar8x16 = 82574,
765     Iop_Sar16x8 = 82575,   765     Iop_Sar16x8 = 82575,
766     Iop_Sar32x4 = 82576,   766     Iop_Sar32x4 = 82576,
767     Iop_Sar64x2 = 82577,   767     Iop_Sar64x2 = 82577,
768     Iop_Sal8x16 = 82578,   768     Iop_Sal8x16 = 82578,
769     Iop_Sal16x8 = 82579,   769     Iop_Sal16x8 = 82579,
770     Iop_Sal32x4 = 82580,   770     Iop_Sal32x4 = 82580,
771     Iop_Sal64x2 = 82581,   771     Iop_Sal64x2 = 82581,
772     Iop_Rol8x16 = 82582,   772     Iop_Rol8x16 = 82582,
773     Iop_Rol16x8 = 82583,   773     Iop_Rol16x8 = 82583,
774     Iop_Rol32x4 = 82584,   774     Iop_Rol32x4 = 82584,
775     Iop_QShl8x16 = 82585,   775     Iop_QShl8x16 = 82585,
776     Iop_QShl16x8 = 82586,   776     Iop_QShl16x8 = 82586,
777     Iop_QShl32x4 = 82587,   777     Iop_QShl32x4 = 82587,
778     Iop_QShl64x2 = 82588,   778     Iop_QShl64x2 = 82588,
779     Iop_QSal8x16 = 82589,   779     Iop_QSal8x16 = 82589,
780     Iop_QSal16x8 = 82590,   780     Iop_QSal16x8 = 82590,
781     Iop_QSal32x4 = 82591,   781     Iop_QSal32x4 = 82591,
782     Iop_QSal64x2 = 82592,   782     Iop_QSal64x2 = 82592,
783     Iop_QShlN8Sx16 = 82593,   783     Iop_QShlN8Sx16 = 82593,
784     Iop_QShlN16Sx8 = 82594,   784     Iop_QShlN16Sx8 = 82594,
785     Iop_QShlN32Sx4 = 82595,   785     Iop_QShlN32Sx4 = 82595,
786     Iop_QShlN64Sx2 = 82596,   786     Iop_QShlN64Sx2 = 82596,
787     Iop_QShlN8x16 = 82597,   787     Iop_QShlN8x16 = 82597,
788     Iop_QShlN16x8 = 82598,   788     Iop_QShlN16x8 = 82598,
789     Iop_QShlN32x4 = 82599,   789     Iop_QShlN32x4 = 82599,
790     Iop_QShlN64x2 = 82600,   790     Iop_QShlN64x2 = 82600,
791     Iop_QSalN8x16 = 82601,   791     Iop_QSalN8x16 = 82601,
792     Iop_QSalN16x8 = 82602,   792     Iop_QSalN16x8 = 82602,
793     Iop_QSalN32x4 = 82603,   793     Iop_QSalN32x4 = 82603,
794     Iop_QSalN64x2 = 82604,   794     Iop_QSalN64x2 = 82604,
795     Iop_QNarrowBin16Sto8Ux16 = 82605,   795     Iop_QNarrowBin16Sto8Ux16 = 82605,
796     Iop_QNarrowBin32Sto16Ux8 = 82606,   796     Iop_QNarrowBin32Sto16Ux8 = 82606,
797     Iop_QNarrowBin16Sto8Sx16 = 82607,   797     Iop_QNarrowBin16Sto8Sx16 = 82607,
798     Iop_QNarrowBin32Sto16Sx8 = 82608,   798     Iop_QNarrowBin32Sto16Sx8 = 82608,
799     Iop_QNarrowBin16Uto8Ux16 = 82609,   799     Iop_QNarrowBin16Uto8Ux16 = 82609,
800     Iop_QNarrowBin32Uto16Ux8 = 82610,   800     Iop_QNarrowBin32Uto16Ux8 = 82610,
801     Iop_NarrowBin16to8x16 = 82611,   801     Iop_NarrowBin16to8x16 = 82611,
802     Iop_NarrowBin32to16x8 = 82612,   802     Iop_NarrowBin32to16x8 = 82612,
803     Iop_NarrowUn16to8x8 = 82613,   803     Iop_NarrowUn16to8x8 = 82613,
804     Iop_NarrowUn32to16x4 = 82614,   804     Iop_NarrowUn32to16x4 = 82614,
805     Iop_NarrowUn64to32x2 = 82615,   805     Iop_NarrowUn64to32x2 = 82615,
806     Iop_QNarrowUn16Sto8Sx8 = 82616,   806     Iop_QNarrowUn16Sto8Sx8 = 82616,
807     Iop_QNarrowUn32Sto16Sx4 = 82617,   807     Iop_QNarrowUn32Sto16Sx4 = 82617,
808     Iop_QNarrowUn64Sto32Sx2 = 82618,   808     Iop_QNarrowUn64Sto32Sx2 = 82618,
809     Iop_QNarrowUn16Sto8Ux8 = 82619,   809     Iop_QNarrowUn16Sto8Ux8 = 82619,
810     Iop_QNarrowUn32Sto16Ux4 = 82620,   810     Iop_QNarrowUn32Sto16Ux4 = 82620,
811     Iop_QNarrowUn64Sto32Ux2 = 82621,   811     Iop_QNarrowUn64Sto32Ux2 = 82621,
812     Iop_QNarrowUn16Uto8Ux8 = 82622,   812     Iop_QNarrowUn16Uto8Ux8 = 82622,
813     Iop_QNarrowUn32Uto16Ux4 = 82623,   813     Iop_QNarrowUn32Uto16Ux4 = 82623,
814     Iop_QNarrowUn64Uto32Ux2 = 82624,   814     Iop_QNarrowUn64Uto32Ux2 = 82624,
815     Iop_Widen8Uto16x8 = 82625,   815     Iop_Widen8Uto16x8 = 82625,
816     Iop_Widen16Uto32x4 = 82626,   816     Iop_Widen16Uto32x4 = 82626,
817     Iop_Widen32Uto64x2 = 82627,   817     Iop_Widen32Uto64x2 = 82627,
818     Iop_Widen8Sto16x8 = 82628,   818     Iop_Widen8Sto16x8 = 82628,
819     Iop_Widen16Sto32x4 = 82629,   819     Iop_Widen16Sto32x4 = 82629,
820     Iop_Widen32Sto64x2 = 82630,   820     Iop_Widen32Sto64x2 = 82630,
821     Iop_InterleaveHI8x16 = 82631,   821     Iop_InterleaveHI8x16 = 82631,
822     Iop_InterleaveHI16x8 = 82632,   822     Iop_InterleaveHI16x8 = 82632,
823     Iop_InterleaveHI32x4 = 82633,   823     Iop_InterleaveHI32x4 = 82633,
824     Iop_InterleaveHI64x2 = 82634,   824     Iop_InterleaveHI64x2 = 82634,
825     Iop_InterleaveLO8x16 = 82635,   825     Iop_InterleaveLO8x16 = 82635,
826     Iop_InterleaveLO16x8 = 82636,   826     Iop_InterleaveLO16x8 = 82636,
827     Iop_InterleaveLO32x4 = 82637,   827     Iop_InterleaveLO32x4 = 82637,
828     Iop_InterleaveLO64x2 = 82638,   828     Iop_InterleaveLO64x2 = 82638,
829     Iop_InterleaveOddLanes8x16 = 82639,   829     Iop_InterleaveOddLanes8x16 = 82639,
830     Iop_InterleaveEvenLanes8x16 = 82640,   830     Iop_InterleaveEvenLanes8x16 = 82640,
831     Iop_InterleaveOddLanes16x8 = 82641,   831     Iop_InterleaveOddLanes16x8 = 82641,
832     Iop_InterleaveEvenLanes16x8 = 82642,   832     Iop_InterleaveEvenLanes16x8 = 82642,
833     Iop_InterleaveOddLanes32x4 = 82643,   833     Iop_InterleaveOddLanes32x4 = 82643,
834     Iop_InterleaveEvenLanes32x4 = 82644,   834     Iop_InterleaveEvenLanes32x4 = 82644,
835     Iop_CatOddLanes8x16 = 82645,   835     Iop_CatOddLanes8x16 = 82645,
836     Iop_CatOddLanes16x8 = 82646,   836     Iop_CatOddLanes16x8 = 82646,
837     Iop_CatOddLanes32x4 = 82647,   837     Iop_CatOddLanes32x4 = 82647,
838     Iop_CatEvenLanes8x16 = 82648,   838     Iop_CatEvenLanes8x16 = 82648,
839     Iop_CatEvenLanes16x8 = 82649,   839     Iop_CatEvenLanes16x8 = 82649,
840     Iop_CatEvenLanes32x4 = 82650,   840     Iop_CatEvenLanes32x4 = 82650,
841     Iop_GetElem8x16 = 82651,   841     Iop_GetElem8x16 = 82651,
842     Iop_GetElem16x8 = 82652,   842     Iop_GetElem16x8 = 82652,
843     Iop_GetElem32x4 = 82653,   843     Iop_GetElem32x4 = 82653,
844     Iop_GetElem64x2 = 82654,   844     Iop_GetElem64x2 = 82654,
845     Iop_Dup8x16 = 82655,   845     Iop_Dup8x16 = 82655,
846     Iop_Dup16x8 = 82656,   846     Iop_Dup16x8 = 82656,
847     Iop_Dup32x4 = 82657,   847     Iop_Dup32x4 = 82657,
848     Iop_ExtractV128 = 82658,   848     Iop_ExtractV128 = 82658,
849     Iop_Reverse16_8x16 = 82659,   849     Iop_Reverse16_8x16 = 82659,
850     Iop_Reverse32_8x16 = 82660,   850     Iop_Reverse32_8x16 = 82660,
851     Iop_Reverse32_16x8 = 82661,   851     Iop_Reverse32_16x8 = 82661,
852     Iop_Reverse64_8x16 = 82662,   852     Iop_Reverse64_8x16 = 82662,
853     Iop_Reverse64_16x8 = 82663,   853     Iop_Reverse64_16x8 = 82663,
854     Iop_Reverse64_32x4 = 82664,   854     Iop_Reverse64_32x4 = 82664,
855     Iop_Perm8x16 = 82665,   855     Iop_Perm8x16 = 82665,
856     Iop_Recip32x4 = 82666,   856     Iop_Recip32x4 = 82666,
857     Iop_Rsqrte32x4 = 82667   857     Iop_Rsqrte32x4 = 82667
858 } ;   858 } ;
859 typedef enum __anonenum_IROp_10 IROp;   859 typedef enum __anonenum_IROp_10 IROp;
860 enum __anonenum_IRRoundingMode_11 {   860 enum __anonenum_IRRoundingMode_11 {
861     Irrm_NEAREST = 0,   861     Irrm_NEAREST = 0,
862     Irrm_NegINF = 1,   862     Irrm_NegINF = 1,
863     Irrm_PosINF = 2,   863     Irrm_PosINF = 2,
864     Irrm_ZERO = 3   864     Irrm_ZERO = 3
865 } ;   865 } ;
866 typedef enum __anonenum_IRRoundingMode_11 IRRoundingMode;   866 typedef enum __anonenum_IRRoundingMode_11 IRRoundingMode;
867 enum __anonenum_IRCmpF64Result_12 {   867 enum __anonenum_IRCmpF64Result_12 {
868     Ircr_UN = 69,   868     Ircr_UN = 69,
869     Ircr_LT = 1,   869     Ircr_LT = 1,
870     Ircr_GT = 0,   870     Ircr_GT = 0,
871     Ircr_EQ = 64   871     Ircr_EQ = 64
872 } ;   872 } ;
873 typedef enum __anonenum_IRCmpF64Result_12 IRCmpF64Result;   873 typedef enum __anonenum_IRCmpF64Result_12 IRCmpF64Result;
874 typedef IRCmpF64Result IRCmpF32Result;   874 typedef IRCmpF64Result IRCmpF32Result;
875 typedef IRCmpF64Result IRCmpF128Result;   875 typedef IRCmpF64Result IRCmpF128Result;
876 enum __anonenum_IRExprTag_13 {   876 enum __anonenum_IRExprTag_13 {
877     Iex_Binder = 86016,   877     Iex_Binder = 86016,
878     Iex_Get = 86017,   878     Iex_Get = 86017,
879     Iex_GetI = 86018,   879     Iex_GetI = 86018,
880     Iex_RdTmp = 86019,   880     Iex_RdTmp = 86019,
881     Iex_Qop = 86020,   881     Iex_Qop = 86020,
882     Iex_Triop = 86021,   882     Iex_Triop = 86021,
883     Iex_Binop = 86022,   883     Iex_Binop = 86022,
884     Iex_Unop = 86023,   884     Iex_Unop = 86023,
885     Iex_Load = 86024,   885     Iex_Load = 86024,
886     Iex_Const = 86025,   886     Iex_Const = 86025,
887     Iex_Mux0X = 86026,   887     Iex_Mux0X = 86026,
888     Iex_CCall = 86027   888     Iex_CCall = 86027
889 } ;   889 } ;
890 typedef enum __anonenum_IRExprTag_13 IRExprTag;   890 typedef enum __anonenum_IRExprTag_13 IRExprTag;
891 struct _IRExpr;   891 struct _IRExpr;
892 typedef struct _IRExpr IRExpr;   892 typedef struct _IRExpr IRExpr;
893 struct __anonstruct_Binder_15 {   893 struct __anonstruct_Binder_15 {
894    Int binder ;   894    Int binder ;
895 };   895 };
896 struct __anonstruct_Get_16 {   896 struct __anonstruct_Get_16 {
897    Int offset ;   897    Int offset ;
898    IRType ty ;   898    IRType ty ;
899 };   899 };
900 struct __anonstruct_GetI_17 {   900 struct __anonstruct_GetI_17 {
901    IRRegArray *descr ;   901    IRRegArray *descr ;
902    IRExpr *ix ;   902    IRExpr *ix ;
903    Int bias ;   903    Int bias ;
904 };   904 };
905 struct __anonstruct_RdTmp_18 {   905 struct __anonstruct_RdTmp_18 {
906    IRTemp tmp ;   906    IRTemp tmp ;
907 };   907 };
908 struct __anonstruct_Qop_19 {   908 struct __anonstruct_Qop_19 {
909    IROp op ;   909    IROp op ;
910    IRExpr *arg1 ;   910    IRExpr *arg1 ;
911    IRExpr *arg2 ;   911    IRExpr *arg2 ;
912    IRExpr *arg3 ;   912    IRExpr *arg3 ;
913    IRExpr *arg4 ;   913    IRExpr *arg4 ;
914 };   914 };
915 struct __anonstruct_Triop_20 {   915 struct __anonstruct_Triop_20 {
916    IROp op ;   916    IROp op ;
917    IRExpr *arg1 ;   917    IRExpr *arg1 ;
918    IRExpr *arg2 ;   918    IRExpr *arg2 ;
919    IRExpr *arg3 ;   919    IRExpr *arg3 ;
920 };   920 };
921 struct __anonstruct_Binop_21 {   921 struct __anonstruct_Binop_21 {
922    IROp op ;   922    IROp op ;
923    IRExpr *arg1 ;   923    IRExpr *arg1 ;
924    IRExpr *arg2 ;   924    IRExpr *arg2 ;
925 };   925 };
926 struct __anonstruct_Unop_22 {   926 struct __anonstruct_Unop_22 {
927    IROp op ;   927    IROp op ;
928    IRExpr *arg ;   928    IRExpr *arg ;
929 };   929 };
930 struct __anonstruct_Load_23 {   930 struct __anonstruct_Load_23 {
931    IREndness end ;   931    IREndness end ;
932    IRType ty ;   932    IRType ty ;
933    IRExpr *addr ;   933    IRExpr *addr ;
934 };   934 };
935 struct __anonstruct_Const_24 {   935 struct __anonstruct_Const_24 {
936    IRConst *con ;   936    IRConst *con ;
937 };   937 };
938 struct __anonstruct_CCall_25 {   938 struct __anonstruct_CCall_25 {
939    IRCallee *cee ;   939    IRCallee *cee ;
940    IRType retty ;   940    IRType retty ;
941    IRExpr **args ;   941    IRExpr **args ;
942 };   942 };
943 struct __anonstruct_Mux0X_26 {   943 struct __anonstruct_Mux0X_26 {
944    IRExpr *cond ;   944    IRExpr *cond ;
945    IRExpr *expr0 ;   945    IRExpr *expr0 ;
946    IRExpr *exprX ;   946    IRExpr *exprX ;
947 };   947 };
948 union __anonunion_Iex_14 {   948 union __anonunion_Iex_14 {
949    struct __anonstruct_Binder_15 Binder ;   949    struct __anonstruct_Binder_15 Binder ;
950    struct __anonstruct_Get_16 Get ;   950    struct __anonstruct_Get_16 Get ;
951    struct __anonstruct_GetI_17 GetI ;   951    struct __anonstruct_GetI_17 GetI ;
952    struct __anonstruct_RdTmp_18 RdTmp ;   952    struct __anonstruct_RdTmp_18 RdTmp ;
953    struct __anonstruct_Qop_19 Qop ;   953    struct __anonstruct_Qop_19 Qop ;
954    struct __anonstruct_Triop_20 Triop ;   954    struct __anonstruct_Triop_20 Triop ;
955    struct __anonstruct_Binop_21 Binop ;   955    struct __anonstruct_Binop_21 Binop ;
956    struct __anonstruct_Unop_22 Unop ;   956    struct __anonstruct_Unop_22 Unop ;
957    struct __anonstruct_Load_23 Load ;   957    struct __anonstruct_Load_23 Load ;
958    struct __anonstruct_Const_24 Const ;   958    struct __anonstruct_Const_24 Const ;
959    struct __anonstruct_CCall_25 CCall ;   959    struct __anonstruct_CCall_25 CCall ;
960    struct __anonstruct_Mux0X_26 Mux0X ;   960    struct __anonstruct_Mux0X_26 Mux0X ;
961 };   961 };
962 struct _IRExpr {   962 struct _IRExpr {
963    IRExprTag tag ;   963    IRExprTag tag ;
964    union __anonunion_Iex_14 Iex ;   964    union __anonunion_Iex_14 Iex ;
965 };   965 };
966 enum __anonenum_IRJumpKind_27 {   966 enum __anonenum_IRJumpKind_27 {
967     Ijk_Boring = 90112,   967     Ijk_Boring = 90112,
968     Ijk_Call = 90113,   968     Ijk_Call = 90113,
969     Ijk_Ret = 90114,   969     Ijk_Ret = 90114,
970     Ijk_ClientReq = 90115,   970     Ijk_ClientReq = 90115,
971     Ijk_Yield = 90116,   971     Ijk_Yield = 90116,
972     Ijk_EmWarn = 90117,   972     Ijk_EmWarn = 90117,
973     Ijk_EmFail = 90118,   973     Ijk_EmFail = 90118,
974     Ijk_NoDecode = 90119,   974     Ijk_NoDecode = 90119,
975     Ijk_MapFail = 90120,   975     Ijk_MapFail = 90120,
976     Ijk_TInval = 90121,   976     Ijk_TInval = 90121,
977     Ijk_NoRedir = 90122,   977     Ijk_NoRedir = 90122,
978     Ijk_SigTRAP = 90123,   978     Ijk_SigTRAP = 90123,
979     Ijk_SigSEGV = 90124,   979     Ijk_SigSEGV = 90124,
980     Ijk_SigBUS = 90125,   980     Ijk_SigBUS = 90125,
981     Ijk_Sys_syscall = 90126,   981     Ijk_Sys_syscall = 90126,
982     Ijk_Sys_int32 = 90127,   982     Ijk_Sys_int32 = 90127,
983     Ijk_Sys_int128 = 90128,   983     Ijk_Sys_int128 = 90128,
984     Ijk_Sys_int129 = 90129,   984     Ijk_Sys_int129 = 90129,
985     Ijk_Sys_int130 = 90130,   985     Ijk_Sys_int130 = 90130,
986     Ijk_Sys_sysenter = 90131   986     Ijk_Sys_sysenter = 90131
987 } ;   987 } ;
988 typedef enum __anonenum_IRJumpKind_27 IRJumpKind;   988 typedef enum __anonenum_IRJumpKind_27 IRJumpKind;
989 enum __anonenum_IREffect_28 {   989 enum __anonenum_IREffect_28 {
990     Ifx_None = 94208,   990     Ifx_None = 94208,
991     Ifx_Read = 94209,   991     Ifx_Read = 94209,
992     Ifx_Write = 94210,   992     Ifx_Write = 94210,
993     Ifx_Modify = 94211   993     Ifx_Modify = 94211
994 } ;   994 } ;
995 typedef enum __anonenum_IREffect_28 IREffect;   995 typedef enum __anonenum_IREffect_28 IREffect;
996 struct __anonstruct_fxState_30 {   996 struct __anonstruct_fxState_30 {
997    IREffect fx ;   997    IREffect fx ;
998    Int offset ;   998    Int offset ;
999    Int size ;   999    Int size ;
1000 };   1000 };
1001 struct __anonstruct_IRDirty_29 {   1001 struct __anonstruct_IRDirty_29 {
1002    IRCallee *cee ;   1002    IRCallee *cee ;
1003    IRExpr *guard ;   1003    IRExpr *guard ;
1004    IRExpr **args ;   1004    IRExpr **args ;
1005    IRTemp tmp ;   1005    IRTemp tmp ;
1006    IREffect mFx ;   1006    IREffect mFx ;
1007    IRExpr *mAddr ;   1007    IRExpr *mAddr ;
1008    Int mSize ;   1008    Int mSize ;
1009    Bool needsBBP ;   1009    Bool needsBBP ;
1010    Int nFxState ;   1010    Int nFxState ;
1011    struct __anonstruct_fxState_30 fxState[7] ;   1011    struct __anonstruct_fxState_30 fxState[7] ;
1012 };   1012 };
1013 typedef struct __anonstruct_IRDirty_29 IRDirty;   1013 typedef struct __anonstruct_IRDirty_29 IRDirty;
1014 enum __anonenum_IRMBusEvent_31 {   1014 enum __anonenum_IRMBusEvent_31 {
1015     Imbe_Fence = 98304   1015     Imbe_Fence = 98304
1016 } ;   1016 } ;
1017 typedef enum __anonenum_IRMBusEvent_31 IRMBusEvent;   1017 typedef enum __anonenum_IRMBusEvent_31 IRMBusEvent;
1018 struct __anonstruct_IRCAS_32 {   1018 struct __anonstruct_IRCAS_32 {
1019    IRTemp oldHi ;   1019    IRTemp oldHi ;
1020    IRTemp oldLo ;   1020    IRTemp oldLo ;
1021    IREndness end ;   1021    IREndness end ;
1022    IRExpr *addr ;   1022    IRExpr *addr ;
1023    IRExpr *expdHi ;   1023    IRExpr *expdHi ;
1024    IRExpr *expdLo ;   1024    IRExpr *expdLo ;
1025    IRExpr *dataHi ;   1025    IRExpr *dataHi ;
1026    IRExpr *dataLo ;   1026    IRExpr *dataLo ;
1027 };   1027 };
1028 typedef struct __anonstruct_IRCAS_32 IRCAS;   1028 typedef struct __anonstruct_IRCAS_32 IRCAS;
1029 enum __anonenum_IRStmtTag_33 {   1029 enum __anonenum_IRStmtTag_33 {
1030     Ist_NoOp = 102400,   1030     Ist_NoOp = 102400,
1031     Ist_IMark = 102401,   1031     Ist_IMark = 102401,
1032     Ist_AbiHint = 102402,   1032     Ist_AbiHint = 102402,
1033     Ist_Put = 102403,   1033     Ist_Put = 102403,
1034     Ist_PutI = 102404,   1034     Ist_PutI = 102404,
1035     Ist_WrTmp = 102405,   1035     Ist_WrTmp = 102405,
1036     Ist_Store = 102406,   1036     Ist_Store = 102406,
1037     Ist_CAS = 102407,   1037     Ist_CAS = 102407,
1038     Ist_LLSC = 102408,   1038     Ist_LLSC = 102408,
1039     Ist_Dirty = 102409,   1039     Ist_Dirty = 102409,
1040     Ist_MBE = 102410,   1040     Ist_MBE = 102410,
1041     Ist_Exit = 102411   1041     Ist_Exit = 102411
1042 } ;   1042 } ;
1043 typedef enum __anonenum_IRStmtTag_33 IRStmtTag;   1043 typedef enum __anonenum_IRStmtTag_33 IRStmtTag;
1044 struct __anonstruct_NoOp_35 {   1044 struct __anonstruct_NoOp_35 {
1045     1045  
1046 };   1046 };
1047 struct __anonstruct_IMark_36 {   1047 struct __anonstruct_IMark_36 {
1048    Addr64 addr ;   1048    Addr64 addr ;
1049    Int len ;   1049    Int len ;
1050    UChar delta ;   1050    UChar delta ;
1051 };   1051 };
1052 struct __anonstruct_AbiHint_37 {   1052 struct __anonstruct_AbiHint_37 {
1053    IRExpr *base ;   1053    IRExpr *base ;
1054    Int len ;   1054    Int len ;
1055    IRExpr *nia ;   1055    IRExpr *nia ;
1056 };   1056 };
1057 struct __anonstruct_Put_38 {   1057 struct __anonstruct_Put_38 {
1058    Int offset ;   1058    Int offset ;
1059    IRExpr *data ;   1059    IRExpr *data ;
1060 };   1060 };
1061 struct __anonstruct_PutI_39 {   1061 struct __anonstruct_PutI_39 {
1062    IRRegArray *descr ;   1062    IRRegArray *descr ;
1063    IRExpr *ix ;   1063    IRExpr *ix ;
1064    Int bias ;   1064    Int bias ;
1065    IRExpr *data ;   1065    IRExpr *data ;
1066 };   1066 };
1067 struct __anonstruct_WrTmp_40 {   1067 struct __anonstruct_WrTmp_40 {
1068    IRTemp tmp ;   1068    IRTemp tmp ;
1069    IRExpr *data ;   1069    IRExpr *data ;
1070 };   1070 };
1071 struct __anonstruct_Store_41 {   1071 struct __anonstruct_Store_41 {
1072    IREndness end ;   1072    IREndness end ;
1073    IRExpr *addr ;   1073    IRExpr *addr ;
1074    IRExpr *data ;   1074    IRExpr *data ;
1075 };   1075 };
1076 struct __anonstruct_CAS_42 {   1076 struct __anonstruct_CAS_42 {
1077    IRCAS *details ;   1077    IRCAS *details ;
1078 };   1078 };
1079 struct __anonstruct_LLSC_43 {   1079 struct __anonstruct_LLSC_43 {
1080    IREndness end ;   1080    IREndness end ;
1081    IRTemp result ;   1081    IRTemp result ;
1082    IRExpr *addr ;   1082    IRExpr *addr ;
1083    IRExpr *storedata ;   1083    IRExpr *storedata ;
1084 };   1084 };
1085 struct __anonstruct_Dirty_44 {   1085 struct __anonstruct_Dirty_44 {
1086    IRDirty *details ;   1086    IRDirty *details ;
1087 };   1087 };
1088 struct __anonstruct_MBE_45 {   1088 struct __anonstruct_MBE_45 {
1089    IRMBusEvent event ;   1089    IRMBusEvent event ;
1090 };   1090 };
1091 struct __anonstruct_Exit_46 {   1091 struct __anonstruct_Exit_46 {
1092    IRExpr *guard ;   1092    IRExpr *guard ;
1093    IRJumpKind jk ;   1093    IRJumpKind jk ;
1094    IRConst *dst ;   1094    IRConst *dst ;
1095 };   1095 };
1096 union __anonunion_Ist_34 {   1096 union __anonunion_Ist_34 {
1097    struct __anonstruct_NoOp_35 NoOp ;   1097    struct __anonstruct_NoOp_35 NoOp ;
1098    struct __anonstruct_IMark_36 IMark ;   1098    struct __anonstruct_IMark_36 IMark ;
1099    struct __anonstruct_AbiHint_37 AbiHint ;   1099    struct __anonstruct_AbiHint_37 AbiHint ;
1100    struct __anonstruct_Put_38 Put ;   1100    struct __anonstruct_Put_38 Put ;
1101    struct __anonstruct_PutI_39 PutI ;   1101    struct __anonstruct_PutI_39 PutI ;
1102    struct __anonstruct_WrTmp_40 WrTmp ;   1102    struct __anonstruct_WrTmp_40 WrTmp ;
1103    struct __anonstruct_Store_41 Store ;   1103    struct __anonstruct_Store_41 Store ;
1104    struct __anonstruct_CAS_42 CAS ;   1104    struct __anonstruct_CAS_42 CAS ;
1105    struct __anonstruct_LLSC_43 LLSC ;   1105    struct __anonstruct_LLSC_43 LLSC ;
1106    struct __anonstruct_Dirty_44 Dirty ;   1106    struct __anonstruct_Dirty_44 Dirty ;
1107    struct __anonstruct_MBE_45 MBE ;   1107    struct __anonstruct_MBE_45 MBE ;
1108    struct __anonstruct_Exit_46 Exit ;   1108    struct __anonstruct_Exit_46 Exit ;
1109 };   1109 };
1110 struct _IRStmt {   1110 struct _IRStmt {
1111    IRStmtTag tag ;   1111    IRStmtTag tag ;
1112    union __anonunion_Ist_34 Ist ;   1112    union __anonunion_Ist_34 Ist ;
1113 };   1113 };
1114 typedef struct _IRStmt IRStmt;   1114 typedef struct _IRStmt IRStmt;
1115 struct __anonstruct_IRTypeEnv_47 {   1115 struct __anonstruct_IRTypeEnv_47 {
1116    IRType *types ;   1116    IRType *types ;
1117    Int types_size ;   1117    Int types_size ;
1118    Int types_used ;   1118    Int types_used ;
1119 };   1119 };
1120 typedef struct __anonstruct_IRTypeEnv_47 IRTypeEnv;   1120 typedef struct __anonstruct_IRTypeEnv_47 IRTypeEnv;
1121 struct __anonstruct_IRSB_48 {   1121 struct __anonstruct_IRSB_48 {
1122    IRTypeEnv *tyenv ;   1122    IRTypeEnv *tyenv ;
1123    IRStmt **stmts ;   1123    IRStmt **stmts ;
1124    Int stmts_size ;   1124    Int stmts_size ;
1125    Int stmts_used ;   1125    Int stmts_used ;
1126    IRExpr *next ;   1126    IRExpr *next ;
1127    IRJumpKind jumpkind ;   1127    IRJumpKind jumpkind ;
1128 };   1128 };
1129 typedef struct __anonstruct_IRSB_48 IRSB;   1129 typedef struct __anonstruct_IRSB_48 IRSB;
1130 enum __anonenum_VexArch_49 {   1130 enum __anonenum_VexArch_49 {
1131     VexArch_INVALID = 0,   1131     VexArch_INVALID = 0,
1132     VexArchX86 = 1,   1132     VexArchX86 = 1,
1133     VexArchAMD64 = 2,   1133     VexArchAMD64 = 2,
1134     VexArchARM = 3,   1134     VexArchARM = 3,
1135     VexArchPPC32 = 4,   1135     VexArchPPC32 = 4,
1136     VexArchPPC64 = 5,   1136     VexArchPPC64 = 5,
1137     VexArchS390X = 6   1137     VexArchS390X = 6
1138 } ;   1138 } ;
1139 typedef enum __anonenum_VexArch_49 VexArch;   1139 typedef enum __anonenum_VexArch_49 VexArch;
1140 struct __anonstruct_VexArchInfo_50 {   1140 struct __anonstruct_VexArchInfo_50 {
1141    UInt hwcaps ;   1141    UInt hwcaps ;
1142    Int ppc_cache_line_szB ;   1142    Int ppc_cache_line_szB ;
1143    UInt ppc_dcbz_szB ;   1143    UInt ppc_dcbz_szB ;
1144    UInt ppc_dcbzl_szB ;   1144    UInt ppc_dcbzl_szB ;
1145 };   1145 };
1146 typedef struct __anonstruct_VexArchInfo_50 VexArchInfo;   1146 typedef struct __anonstruct_VexArchInfo_50 VexArchInfo;
1147 struct __anonstruct_VexAbiInfo_51 {   1147 struct __anonstruct_VexAbiInfo_51 {
1148    Int guest_stack_redzone_size ;   1148    Int guest_stack_redzone_size ;
1149    Bool guest_amd64_assume_fs_is_zero ;   1149    Bool guest_amd64_assume_fs_is_zero ;
1150    Bool guest_amd64_assume_gs_is_0x60 ;   1150    Bool guest_amd64_assume_gs_is_0x60 ;
1151    Bool guest_ppc_zap_RZ_at_blr ;   1151    Bool guest_ppc_zap_RZ_at_blr ;
1152    Bool (*guest_ppc_zap_RZ_at_bl)(Addr64  ) ;   1152    Bool (*guest_ppc_zap_RZ_at_bl)(Addr64  ) ;
1153    Bool guest_ppc_sc_continues_at_LR ;   1153    Bool guest_ppc_sc_continues_at_LR ;
1154    Bool host_ppc_calls_use_fndescrs ;   1154    Bool host_ppc_calls_use_fndescrs ;
1155    Bool host_ppc32_regalign_int64_args ;   1155    Bool host_ppc32_regalign_int64_args ;
1156 };   1156 };
1157 typedef struct __anonstruct_VexAbiInfo_51 VexAbiInfo;   1157 typedef struct __anonstruct_VexAbiInfo_51 VexAbiInfo;
1158 struct __anonstruct_VexControl_52 {   1158 struct __anonstruct_VexControl_52 {
1159    Int iropt_verbosity ;   1159    Int iropt_verbosity ;
1160    Int iropt_level ;   1160    Int iropt_level ;
1161    Bool iropt_precise_memory_exns ;   1161    Bool iropt_precise_memory_exns ;
1162    Int iropt_unroll_thresh ;   1162    Int iropt_unroll_thresh ;
1163    Int guest_max_insns ;   1163    Int guest_max_insns ;
1164    Int guest_chase_thresh ;   1164    Int guest_chase_thresh ;
1165    Bool guest_chase_cond ;   1165    Bool guest_chase_cond ;
1166 };   1166 };
1167 typedef struct __anonstruct_VexControl_52 VexControl;   1167 typedef struct __anonstruct_VexControl_52 VexControl;
1168 struct __anonstruct_alwaysDefd_54 {   1168 struct __anonstruct_alwaysDefd_54 {
1169    Int offset ;   1169    Int offset ;
1170    Int size ;   1170    Int size ;
1171 };   1171 };
1172 struct __anonstruct_VexGuestLayout_53 {   1172 struct __anonstruct_VexGuestLayout_53 {
1173    Int total_sizeB ;   1173    Int total_sizeB ;
1174    Int offset_SP ;   1174    Int offset_SP ;
1175    Int sizeof_SP ;   1175    Int sizeof_SP ;
1176    Int offset_FP ;   1176    Int offset_FP ;
1177    Int sizeof_FP ;   1177    Int sizeof_FP ;
1178    Int offset_IP ;   1178    Int offset_IP ;
1179    Int sizeof_IP ;   1179    Int sizeof_IP ;
1180    Int n_alwaysDefd ;   1180    Int n_alwaysDefd ;
1181    struct __anonstruct_alwaysDefd_54 alwaysDefd[24] ;   1181    struct __anonstruct_alwaysDefd_54 alwaysDefd[24] ;
1182 };   1182 };
1183 typedef struct __anonstruct_VexGuestLayout_53 VexGuestLayout;   1183 typedef struct __anonstruct_VexGuestLayout_53 VexGuestLayout;
1184 enum __anonenum_status_56 {   1184 enum __anonenum_status_56 {
1185     VexTransOK = 0,   1185     VexTransOK = 0,
1186     VexTransAccessFail = 1,   1186     VexTransAccessFail = 1,
1187     VexTransOutputFull = 2   1187     VexTransOutputFull = 2
1188 } ;   1188 } ;
1189 struct __anonstruct_VexTranslateResult_55 {   1189 struct __anonstruct_VexTranslateResult_55 {
1190    enum __anonenum_status_56 status ;   1190    enum __anonenum_status_56 status ;
1191    UInt n_sc_extents ;   1191    UInt n_sc_extents ;
1192 };   1192 };
1193 typedef struct __anonstruct_VexTranslateResult_55 VexTranslateResult;   1193 typedef struct __anonstruct_VexTranslateResult_55 VexTranslateResult;
1194 struct __anonstruct_VexGuestExtents_57 {   1194 struct __anonstruct_VexGuestExtents_57 {
1195    Addr64 base[3] ;   1195    Addr64 base[3] ;
1196    UShort len[3] ;   1196    UShort len[3] ;
1197    UShort n_used ;   1197    UShort n_used ;
1198 };   1198 };
1199 typedef struct __anonstruct_VexGuestExtents_57 VexGuestExtents;   1199 typedef struct __anonstruct_VexGuestExtents_57 VexGuestExtents;
1200 struct __anonstruct_VexTranslateArgs_58 {   1200 struct __anonstruct_VexTranslateArgs_58 {
1201    VexArch arch_guest ;   1201    VexArch arch_guest ;
1202    VexArchInfo archinfo_guest ;   1202    VexArchInfo archinfo_guest ;
1203    VexArch arch_host ;   1203    VexArch arch_host ;
1204    VexArchInfo archinfo_host ;   1204    VexArchInfo archinfo_host ;
1205    VexAbiInfo abiinfo_both ;   1205    VexAbiInfo abiinfo_both ;
1206    void *callback_opaque ;   1206    void *callback_opaque ;
1207    UChar *guest_bytes ;   1207    UChar *guest_bytes ;
1208    Addr64 guest_bytes_addr ;   1208    Addr64 guest_bytes_addr ;
1209    Bool (*chase_into_ok)(void * , Addr64  ) ;   1209    Bool (*chase_into_ok)(void * , Addr64  ) ;
1210    VexGuestExtents *guest_extents ;   1210    VexGuestExtents *guest_extents ;
1211    UChar *host_bytes ;   1211    UChar *host_bytes ;
1212    Int host_bytes_size ;   1212    Int host_bytes_size ;
1213    Int *host_bytes_used ;   1213    Int *host_bytes_used ;
1214    IRSB *(*instrument1)(void * , IRSB * , VexGuestLayout * , VexGuestExtents * ,   1214    IRSB *(*instrument1)(void * , IRSB * , VexGuestLayout * , VexGuestExtents * ,
1215                         IRType gWordTy , IRType hWordTy ) ;   1215                         IRType gWordTy , IRType hWordTy ) ;
1216    IRSB *(*instrument2)(void * , IRSB * , VexGuestLayout * , VexGuestExtents * ,   1216    IRSB *(*instrument2)(void * , IRSB * , VexGuestLayout * , VexGuestExtents * ,
1217                         IRType gWordTy , IRType hWordTy ) ;   1217                         IRType gWordTy , IRType hWordTy ) ;
1218    IRSB *(*finaltidy)(IRSB * ) ;   1218    IRSB *(*finaltidy)(IRSB * ) ;
1219    UInt (*needs_self_check)(void * , VexGuestExtents * ) ;   1219    UInt (*needs_self_check)(void * , VexGuestExtents * ) ;
1220    Bool (*preamble_function)(void * , IRSB * ) ;   1220    Bool (*preamble_function)(void * , IRSB * ) ;
1221    Int traceflags ;   1221    Int traceflags ;
1222    void *dispatch_unassisted ;   1222    void *dispatch_unassisted ;
1223    void *dispatch_assisted ;   1223    void *dispatch_assisted ;
1224 };   1224 };
1225 typedef struct __anonstruct_VexTranslateArgs_58 VexTranslateArgs;   1225 typedef struct __anonstruct_VexTranslateArgs_58 VexTranslateArgs;
1226 enum __anonenum_VexEmWarn_59 {   1226 enum __anonenum_VexEmWarn_59 {
1227     EmWarn_NONE = 0,   1227     EmWarn_NONE = 0,
1228     EmWarn_X86_x87exns = 1,   1228     EmWarn_X86_x87exns = 1,
1229     EmWarn_X86_x87precision = 2,   1229     EmWarn_X86_x87precision = 2,
1230     EmWarn_X86_sseExns = 3,   1230     EmWarn_X86_sseExns = 3,
1231     EmWarn_X86_fz = 4,   1231     EmWarn_X86_fz = 4,
1232     EmWarn_X86_daz = 5,   1232     EmWarn_X86_daz = 5,
1233     EmWarn_X86_acFlag = 6,   1233     EmWarn_X86_acFlag = 6,
1234     EmWarn_PPCexns = 7,   1234     EmWarn_PPCexns = 7,
1235     EmWarn_PPC64_redir_overflow = 8,   1235     EmWarn_PPC64_redir_overflow = 8,
1236     EmWarn_PPC64_redir_underflow = 9,   1236     EmWarn_PPC64_redir_underflow = 9,
1237     EmWarn_NUMBER = 10   1237     EmWarn_NUMBER = 10
1238 } ;   1238 } ;
1239 typedef enum __anonenum_VexEmWarn_59 VexEmWarn;   1239 typedef enum __anonenum_VexEmWarn_59 VexEmWarn;
1240 struct __anonstruct_VexGuestX86State_60 {   1240 struct __anonstruct_VexGuestX86State_60 {
1241    UInt guest_EAX ;   1241    UInt guest_EAX ;
1242    UInt guest_ECX ;   1242    UInt guest_ECX ;
1243    UInt guest_EDX ;   1243    UInt guest_EDX ;
1244    UInt guest_EBX ;   1244    UInt guest_EBX ;
1245    UInt guest_ESP ;   1245    UInt guest_ESP ;
1246    UInt guest_EBP ;   1246    UInt guest_EBP ;
1247    UInt guest_ESI ;   1247    UInt guest_ESI ;
1248    UInt guest_EDI ;   1248    UInt guest_EDI ;
1249    UInt guest_CC_OP ;   1249    UInt guest_CC_OP ;
1250    UInt guest_CC_DEP1 ;   1250    UInt guest_CC_DEP1 ;
1251    UInt guest_CC_DEP2 ;   1251    UInt guest_CC_DEP2 ;
1252    UInt guest_CC_NDEP ;   1252    UInt guest_CC_NDEP ;
1253    UInt guest_DFLAG ;   1253    UInt guest_DFLAG ;
1254    UInt guest_IDFLAG ;   1254    UInt guest_IDFLAG ;
1255    UInt guest_ACFLAG ;   1255    UInt guest_ACFLAG ;
1256    UInt guest_EIP ;   1256    UInt guest_EIP ;
1257    ULong guest_FPREG[8] ;   1257    ULong guest_FPREG[8] ;
1258    UChar guest_FPTAG[8] ;   1258    UChar guest_FPTAG[8] ;
1259    UInt guest_FPROUND ;   1259    UInt guest_FPROUND ;
1260    UInt guest_FC3210 ;   1260    UInt guest_FC3210 ;
1261    UInt guest_FTOP ;   1261    UInt guest_FTOP ;
1262    UInt guest_SSEROUND ;   1262    UInt guest_SSEROUND ;
1263    U128 guest_XMM0 ;   1263    U128 guest_XMM0 ;
1264    U128 guest_XMM1 ;   1264    U128 guest_XMM1 ;
1265    U128 guest_XMM2 ;   1265    U128 guest_XMM2 ;
1266    U128 guest_XMM3 ;   1266    U128 guest_XMM3 ;
1267    U128 guest_XMM4 ;   1267    U128 guest_XMM4 ;
1268    U128 guest_XMM5 ;   1268    U128 guest_XMM5 ;
1269    U128 guest_XMM6 ;   1269    U128 guest_XMM6 ;
1270    U128 guest_XMM7 ;   1270    U128 guest_XMM7 ;
1271    UShort guest_CS ;   1271    UShort guest_CS ;
1272    UShort guest_DS ;   1272    UShort guest_DS ;
1273    UShort guest_ES ;   1273    UShort guest_ES ;
1274    UShort guest_FS ;   1274    UShort guest_FS ;
1275    UShort guest_GS ;   1275    UShort guest_GS ;
1276    UShort guest_SS ;   1276    UShort guest_SS ;
1277    HWord guest_LDT ;   1277    HWord guest_LDT ;
1278    HWord guest_GDT ;   1278    HWord guest_GDT ;
1279    UInt guest_EMWARN ;   1279    UInt guest_EMWARN ;
1280    UInt guest_TISTART ;   1280    UInt guest_TISTART ;
1281    UInt guest_TILEN ;   1281    UInt guest_TILEN ;
1282    UInt guest_NRADDR ;   1282    UInt guest_NRADDR ;
1283    UInt guest_SC_CLASS ;   1283    UInt guest_SC_CLASS ;
1284    UInt guest_IP_AT_SYSCALL ;   1284    UInt guest_IP_AT_SYSCALL ;
1285    UInt padding1 ;   1285    UInt padding1 ;
1286    UInt padding2 ;   1286    UInt padding2 ;
1287    UInt padding3 ;   1287    UInt padding3 ;
1288 };   1288 };
1289 typedef struct __anonstruct_VexGuestX86State_60 VexGuestX86State;   1289 typedef struct __anonstruct_VexGuestX86State_60 VexGuestX86State;
1290 struct __anonstruct_Bits_63 {   1290 struct __anonstruct_Bits_63 {
1291    UShort LimitLow ;   1291    UShort LimitLow ;
1292    UShort BaseLow ;   1292    UShort BaseLow ;
1293    UInt BaseMid : 8 ;   1293    UInt BaseMid : 8 ;
1294    UInt Type : 5 ;   1294    UInt Type : 5 ;
1295    UInt Dpl : 2 ;   1295    UInt Dpl : 2 ;
1296    UInt Pres : 1 ;   1296    UInt Pres : 1 ;
1297    UInt LimitHi : 4 ;   1297    UInt LimitHi : 4 ;
1298    UInt Sys : 1 ;   1298    UInt Sys : 1 ;
1299    UInt Reserved_0 : 1 ;   1299    UInt Reserved_0 : 1 ;
1300    UInt Default_Big : 1 ;   1300    UInt Default_Big : 1 ;
1301    UInt Granularity : 1 ;   1301    UInt Granularity : 1 ;
1302    UInt BaseHi : 8 ;   1302    UInt BaseHi : 8 ;
1303 };   1303 };
1304 struct __anonstruct_Words_64 {   1304 struct __anonstruct_Words_64 {
1305    UInt word1 ;   1305    UInt word1 ;
1306    UInt word2 ;   1306    UInt word2 ;
1307 };   1307 };
1308 union __anonunion_LdtEnt_62 {   1308 union __anonunion_LdtEnt_62 {
1309    struct __anonstruct_Bits_63 Bits ;   1309    struct __anonstruct_Bits_63 Bits ;
1310    struct __anonstruct_Words_64 Words ;   1310    struct __anonstruct_Words_64 Words ;
1311 };   1311 };
1312 struct __anonstruct_VexGuestX86SegDescr_61 {   1312 struct __anonstruct_VexGuestX86SegDescr_61 {
1313    union __anonunion_LdtEnt_62 LdtEnt ;   1313    union __anonunion_LdtEnt_62 LdtEnt ;
1314 };   1314 };
1315 typedef struct __anonstruct_VexGuestX86SegDescr_61 VexGuestX86SegDescr;   1315 typedef struct __anonstruct_VexGuestX86SegDescr_61 VexGuestX86SegDescr;
1316 struct __anonstruct_X86_67 {   1316 struct __anonstruct_X86_67 {
1317    UInt r_ebp ;   1317    UInt r_ebp ;
1318 };   1318 };
1319 struct __anonstruct_AMD64_68 {   1319 struct __anonstruct_AMD64_68 {
1320    ULong r_rbp ;   1320    ULong r_rbp ;
1321 };   1321 };
1322 struct __anonstruct_PPC32_69 {   1322 struct __anonstruct_PPC32_69 {
1323    UInt r_lr ;   1323    UInt r_lr ;
1324 };   1324 };
1325 struct __anonstruct_PPC64_70 {   1325 struct __anonstruct_PPC64_70 {
1326    ULong r_lr ;   1326    ULong r_lr ;
1327 };   1327 };
1328 struct __anonstruct_ARM_71 {   1328 struct __anonstruct_ARM_71 {
1329    UInt r14 ;   1329    UInt r14 ;
1330    UInt r12 ;   1330    UInt r12 ;
1331    UInt r11 ;   1331    UInt r11 ;
1332    UInt r7 ;   1332    UInt r7 ;
1333 };   1333 };
1334 struct __anonstruct_S390X_72 {   1334 struct __anonstruct_S390X_72 {
1335    ULong r_fp ;   1335    ULong r_fp ;
1336    ULong r_lr ;   1336    ULong r_lr ;
1337 };   1337 };
1338 union __anonunion_misc_66 {   1338 union __anonunion_misc_66 {
1339    struct __anonstruct_X86_67 X86 ;   1339    struct __anonstruct_X86_67 X86 ;
1340    struct __anonstruct_AMD64_68 AMD64 ;   1340    struct __anonstruct_AMD64_68 AMD64 ;
1341    struct __anonstruct_PPC32_69 PPC32 ;   1341    struct __anonstruct_PPC32_69 PPC32 ;
1342    struct __anonstruct_PPC64_70 PPC64 ;   1342    struct __anonstruct_PPC64_70 PPC64 ;
1343    struct __anonstruct_ARM_71 ARM ;   1343    struct __anonstruct_ARM_71 ARM ;
1344    struct __anonstruct_S390X_72 S390X ;   1344    struct __anonstruct_S390X_72 S390X ;
1345 };   1345 };
1346 struct __anonstruct_UnwindStartRegs_65 {   1346 struct __anonstruct_UnwindStartRegs_65 {
1347    ULong r_pc ;   1347    ULong r_pc ;
1348    ULong r_sp ;   1348    ULong r_sp ;
1349    union __anonunion_misc_66 misc ;   1349    union __anonunion_misc_66 misc ;
1350 };   1350 };
1351 typedef struct __anonstruct_UnwindStartRegs_65 UnwindStartRegs;   1351 typedef struct __anonstruct_UnwindStartRegs_65 UnwindStartRegs;
1352 typedef unsigned short __vki_kernel_mode_t;   1352 typedef unsigned short __vki_kernel_mode_t;
1353 typedef long __vki_kernel_off_t;   1353 typedef long __vki_kernel_off_t;
1354 typedef int __vki_kernel_pid_t;   1354 typedef int __vki_kernel_pid_t;
1355 typedef unsigned short __vki_kernel_ipc_pid_t;   1355 typedef unsigned short __vki_kernel_ipc_pid_t;
1356 typedef unsigned short __vki_kernel_uid_t;   1356 typedef unsigned short __vki_kernel_uid_t;
1357 typedef unsigned short __vki_kernel_gid_t;   1357 typedef unsigned short __vki_kernel_gid_t;
1358 typedef unsigned int __vki_kernel_size_t;   1358 typedef unsigned int __vki_kernel_size_t;
1359 typedef long __vki_kernel_time_t;   1359 typedef long __vki_kernel_time_t;
1360 typedef long __vki_kernel_suseconds_t;   1360 typedef long __vki_kernel_suseconds_t;
1361 typedef long __vki_kernel_clock_t;   1361 typedef long __vki_kernel_clock_t;
1362 typedef int __vki_kernel_timer_t;   1362 typedef int __vki_kernel_timer_t;
1363 typedef int __vki_kernel_clockid_t;   1363 typedef int __vki_kernel_clockid_t;
1364 typedef char *__vki_kernel_caddr_t;   1364 typedef char *__vki_kernel_caddr_t;
1365 typedef unsigned int __vki_kernel_uid32_t;   1365 typedef unsigned int __vki_kernel_uid32_t;
1366 typedef unsigned int __vki_kernel_gid32_t;   1366 typedef unsigned int __vki_kernel_gid32_t;
1367 typedef unsigned short __vki_kernel_old_uid_t;   1367 typedef unsigned short __vki_kernel_old_uid_t;
1368 typedef unsigned short __vki_kernel_old_gid_t;   1368 typedef unsigned short __vki_kernel_old_gid_t;
1369 typedef long long __vki_kernel_loff_t;   1369 typedef long long __vki_kernel_loff_t;
1370 struct __anonstruct___vki_kernel_fsid_t_73 {   1370 struct __anonstruct___vki_kernel_fsid_t_73 {
1371    int val[2] ;   1371    int val[2] ;
1372 };   1372 };
1373 typedef struct __anonstruct___vki_kernel_fsid_t_73 __vki_kernel_fsid_t;   1373 typedef struct __anonstruct___vki_kernel_fsid_t_73 __vki_kernel_fsid_t;
1374 struct __anonstruct___vki_kernel_fd_set_74 {   1374 struct __anonstruct___vki_kernel_fd_set_74 {
1375    unsigned long fds_bits[1024U / (8U * sizeof(unsigned long ))] ;   1375    unsigned long fds_bits[1024U / (8U * sizeof(unsigned long ))] ;
1376 };   1376 };
1377 typedef struct __anonstruct___vki_kernel_fd_set_74 __vki_kernel_fd_set;   1377 typedef struct __anonstruct___vki_kernel_fd_set_74 __vki_kernel_fd_set;
1378 typedef int __vki_kernel_key_t;   1378 typedef int __vki_kernel_key_t;
1379 typedef int __vki_kernel_mqd_t;   1379 typedef int __vki_kernel_mqd_t;
1380 typedef __vki_kernel_fd_set vki_fd_set;   1380 typedef __vki_kernel_fd_set vki_fd_set;
1381 typedef __vki_kernel_mode_t vki_mode_t;   1381 typedef __vki_kernel_mode_t vki_mode_t;
1382 typedef __vki_kernel_off_t vki_off_t;   1382 typedef __vki_kernel_off_t vki_off_t;
1383 typedef __vki_kernel_pid_t vki_pid_t;   1383 typedef __vki_kernel_pid_t vki_pid_t;
1384 typedef __vki_kernel_key_t vki_key_t;   1384 typedef __vki_kernel_key_t vki_key_t;
1385 typedef __vki_kernel_suseconds_t vki_suseconds_t;   1385 typedef __vki_kernel_suseconds_t vki_suseconds_t;
1386 typedef __vki_kernel_timer_t vki_timer_t;   1386 typedef __vki_kernel_timer_t vki_timer_t;
1387 typedef __vki_kernel_clockid_t vki_clockid_t;   1387 typedef __vki_kernel_clockid_t vki_clockid_t;
1388 typedef __vki_kernel_mqd_t vki_mqd_t;   1388 typedef __vki_kernel_mqd_t vki_mqd_t;
1389 typedef __vki_kernel_uid32_t vki_uid_t;   1389 typedef __vki_kernel_uid32_t vki_uid_t;
1390 typedef __vki_kernel_gid32_t vki_gid_t;   1390 typedef __vki_kernel_gid32_t vki_gid_t;
1391 typedef __vki_kernel_old_uid_t vki_old_uid_t;   1391 typedef __vki_kernel_old_uid_t vki_old_uid_t;
1392 typedef __vki_kernel_old_gid_t vki_old_gid_t;   1392 typedef __vki_kernel_old_gid_t vki_old_gid_t;
1393 typedef __vki_kernel_loff_t vki_loff_t;   1393 typedef __vki_kernel_loff_t vki_loff_t;
1394 typedef __vki_kernel_size_t vki_size_t;   1394 typedef __vki_kernel_size_t vki_size_t;
1395 typedef __vki_kernel_time_t vki_time_t;   1395 typedef __vki_kernel_time_t vki_time_t;
1396 typedef __vki_kernel_clock_t vki_clock_t;   1396 typedef __vki_kernel_clock_t vki_clock_t;
1397 typedef __vki_kernel_caddr_t vki_caddr_t;   1397 typedef __vki_kernel_caddr_t vki_caddr_t;
1398 typedef unsigned long vki_u_long;   1398 typedef unsigned long vki_u_long;
1399 typedef unsigned int vki_uint;   1399 typedef unsigned int vki_uint;
1400 typedef unsigned char __vki_u8;   1400 typedef unsigned char __vki_u8;
1401 typedef short __vki_s16;   1401 typedef short __vki_s16;
1402 typedef unsigned short __vki_u16;   1402 typedef unsigned short __vki_u16;
1403 typedef int __vki_s32;   1403 typedef int __vki_s32;
1404 typedef unsigned int __vki_u32;   1404 typedef unsigned int __vki_u32;
1405 typedef long long __vki_s64;   1405 typedef long long __vki_s64;
1406 typedef unsigned long long __vki_u64;   1406 typedef unsigned long long __vki_u64;
1407 typedef unsigned short vki_u16;   1407 typedef unsigned short vki_u16;
1408 typedef unsigned int vki_u32;   1408 typedef unsigned int vki_u32;
1409 typedef void __vki_signalfn_t(int  );   1409 typedef void __vki_signalfn_t(int  );
1410 typedef __vki_signalfn_t *__vki_sighandler_t;   1410 typedef __vki_signalfn_t *__vki_sighandler_t;
1411 typedef void __vki_restorefn_t(void);   1411 typedef void __vki_restorefn_t(void);
1412 typedef __vki_restorefn_t *__vki_sigrestore_t;   1412 typedef __vki_restorefn_t *__vki_sigrestore_t;
1413 typedef unsigned long vki_old_sigset_t;   1413 typedef unsigned long vki_old_sigset_t;
1414 struct __anonstruct_vki_sigset_t_75 {   1414 struct __anonstruct_vki_sigset_t_75 {
1415    unsigned long sig[2] ;   1415    unsigned long sig[2] ;
1416 };   1416 };
1417 typedef struct __anonstruct_vki_sigset_t_75 vki_sigset_t;   1417 typedef struct __anonstruct_vki_sigset_t_75 vki_sigset_t;
1418 struct vki_old_sigaction {   1418 struct vki_old_sigaction {
1419    __vki_sighandler_t ksa_handler ;   1419    __vki_sighandler_t ksa_handler ;
1420    vki_old_sigset_t sa_mask ;   1420    vki_old_sigset_t sa_mask ;
1421    unsigned long sa_flags ;   1421    unsigned long sa_flags ;
1422    __vki_sigrestore_t sa_restorer ;   1422    __vki_sigrestore_t sa_restorer ;
1423 };   1423 };
1424 struct vki_sigaction_base {   1424 struct vki_sigaction_base {
1425    __vki_sighandler_t ksa_handler ;   1425    __vki_sighandler_t ksa_handler ;
1426    unsigned long sa_flags ;   1426    unsigned long sa_flags ;
1427    __vki_sigrestore_t sa_restorer ;   1427    __vki_sigrestore_t sa_restorer ;
1428    vki_sigset_t sa_mask ;   1428    vki_sigset_t sa_mask ;
1429 };   1429 };
1430 typedef struct vki_sigaction_base vki_sigaction_toK_t;   1430 typedef struct vki_sigaction_base vki_sigaction_toK_t;
1431 typedef struct vki_sigaction_base vki_sigaction_fromK_t;   1431 typedef struct vki_sigaction_base vki_sigaction_fromK_t;
1432 struct vki_sigaltstack {   1432 struct vki_sigaltstack {
1433    void *ss_sp ;   1433    void *ss_sp ;
1434    int ss_flags ;   1434    int ss_flags ;
1435    vki_size_t ss_size ;   1435    vki_size_t ss_size ;
1436 };   1436 };
1437 typedef struct vki_sigaltstack vki_stack_t;   1437 typedef struct vki_sigaltstack vki_stack_t;
1438 struct _vki_fpreg {   1438 struct _vki_fpreg {
1439    unsigned short significand[4] ;   1439    unsigned short significand[4] ;
1440    unsigned short exponent ;   1440    unsigned short exponent ;
1441 };   1441 };
1442 struct _vki_fpxreg {   1442 struct _vki_fpxreg {
1443    unsigned short significand[4] ;   1443    unsigned short significand[4] ;
1444    unsigned short exponent ;   1444    unsigned short exponent ;
1445    unsigned short padding[3] ;   1445    unsigned short padding[3] ;
1446 };   1446 };
1447 struct _vki_xmmreg {   1447 struct _vki_xmmreg {
1448    unsigned long element[4] ;   1448    unsigned long element[4] ;
1449 };   1449 };
1450 struct _vki_fpstate {   1450 struct _vki_fpstate {
1451    unsigned long cw ;   1451    unsigned long cw ;
1452    unsigned long sw ;   1452    unsigned long sw ;
1453    unsigned long tag ;   1453    unsigned long tag ;
1454    unsigned long ipoff ;   1454    unsigned long ipoff ;
1455    unsigned long cssel ;   1455    unsigned long cssel ;
1456    unsigned long dataoff ;   1456    unsigned long dataoff ;
1457    unsigned long datasel ;   1457    unsigned long datasel ;
1458    struct _vki_fpreg _st[8] ;   1458    struct _vki_fpreg _st[8] ;
1459    unsigned short status ;   1459    unsigned short status ;
1460    unsigned short magic ;   1460    unsigned short magic ;
1461    unsigned long _fxsr_env[6] ;   1461    unsigned long _fxsr_env[6] ;
1462    unsigned long mxcsr ;   1462    unsigned long mxcsr ;
1463    unsigned long reserved ;   1463    unsigned long reserved ;
1464    struct _vki_fpxreg _fxsr_st[8] ;   1464    struct _vki_fpxreg _fxsr_st[8] ;
1465    struct _vki_xmmreg _xmm[8] ;   1465    struct _vki_xmmreg _xmm[8] ;
1466    unsigned long padding[56] ;   1466    unsigned long padding[56] ;
1467 };   1467 };
1468 struct vki_sigcontext {   1468 struct vki_sigcontext {
1469    unsigned short gs ;   1469    unsigned short gs ;
1470    unsigned short __gsh ;   1470    unsigned short __gsh ;
1471    unsigned short fs ;   1471    unsigned short fs ;
1472    unsigned short __fsh ;   1472    unsigned short __fsh ;
1473    unsigned short es ;   1473    unsigned short es ;
1474    unsigned short __esh ;   1474    unsigned short __esh ;
1475    unsigned short ds ;   1475    unsigned short ds ;
1476    unsigned short __dsh ;   1476    unsigned short __dsh ;
1477    unsigned long edi ;   1477    unsigned long edi ;
1478    unsigned long esi ;   1478    unsigned long esi ;
1479    unsigned long ebp ;   1479    unsigned long ebp ;
1480    unsigned long esp ;   1480    unsigned long esp ;
1481    unsigned long ebx ;   1481    unsigned long ebx ;
1482    unsigned long edx ;   1482    unsigned long edx ;
1483    unsigned long ecx ;   1483    unsigned long ecx ;
1484    unsigned long eax ;   1484    unsigned long eax ;
1485    unsigned long trapno ;   1485    unsigned long trapno ;
1486    unsigned long err ;   1486    unsigned long err ;
1487    unsigned long eip ;   1487    unsigned long eip ;
1488    unsigned short cs ;   1488    unsigned short cs ;
1489    unsigned short __csh ;   1489    unsigned short __csh ;
1490    unsigned long eflags ;   1490    unsigned long eflags ;
1491    unsigned long esp_at_signal ;   1491    unsigned long esp_at_signal ;
1492    unsigned short ss ;   1492    unsigned short ss ;
1493    unsigned short __ssh ;   1493    unsigned short __ssh ;
1494    struct _vki_fpstate *fpstate ;   1494    struct _vki_fpstate *fpstate ;
1495    unsigned long oldmask ;   1495    unsigned long oldmask ;
1496    unsigned long cr2 ;   1496    unsigned long cr2 ;
1497 };   1497 };
1498 struct vki_stat {   1498 struct vki_stat {
1499    unsigned long st_dev ;   1499    unsigned long st_dev ;
1500    unsigned long st_ino ;   1500    unsigned long st_ino ;
1501    unsigned short st_mode ;   1501    unsigned short st_mode ;
1502    unsigned short st_nlink ;   1502    unsigned short st_nlink ;
1503    unsigned short st_uid ;   1503    unsigned short st_uid ;
1504    unsigned short st_gid ;   1504    unsigned short st_gid ;
1505    unsigned long st_rdev ;   1505    unsigned long st_rdev ;
1506    unsigned long st_size ;   1506    unsigned long st_size ;
1507    unsigned long st_blksize ;   1507    unsigned long st_blksize ;
1508    unsigned long st_blocks ;   1508    unsigned long st_blocks ;
1509    unsigned long st_atime ;   1509    unsigned long st_atime ;
1510    unsigned long st_atime_nsec ;   1510    unsigned long st_atime_nsec ;
1511    unsigned long st_mtime ;   1511    unsigned long st_mtime ;
1512    unsigned long st_mtime_nsec ;   1512    unsigned long st_mtime_nsec ;
1513    unsigned long st_ctime ;   1513    unsigned long st_ctime ;
1514    unsigned long st_ctime_nsec ;   1514    unsigned long st_ctime_nsec ;
1515    unsigned long __unused4 ;   1515    unsigned long __unused4 ;
1516    unsigned long __unused5 ;   1516    unsigned long __unused5 ;
1517 };   1517 };
1518 struct vki_stat64 {   1518 struct vki_stat64 {
1519    unsigned long long st_dev ;   1519    unsigned long long st_dev ;
1520    unsigned char __pad0[4] ;   1520    unsigned char __pad0[4] ;
1521    unsigned long __st_ino ;   1521    unsigned long __st_ino ;
1522    unsigned int st_mode ;   1522    unsigned int st_mode ;
1523    unsigned int st_nlink ;   1523    unsigned int st_nlink ;
1524    unsigned long st_uid ;   1524    unsigned long st_uid ;
1525    unsigned long st_gid ;   1525    unsigned long st_gid ;
1526    unsigned long long st_rdev ;   1526    unsigned long long st_rdev ;
1527    unsigned char __pad3[4] ;   1527    unsigned char __pad3[4] ;
1528    long long st_size ;   1528    long long st_size ;
1529    unsigned long st_blksize ;   1529    unsigned long st_blksize ;
1530    unsigned long st_blocks ;   1530    unsigned long st_blocks ;
1531    unsigned long __pad4 ;   1531    unsigned long __pad4 ;
1532    unsigned long st_atime ;   1532    unsigned long st_atime ;
1533    unsigned long st_atime_nsec ;   1533    unsigned long st_atime_nsec ;
1534    unsigned long st_mtime ;   1534    unsigned long st_mtime ;
1535    unsigned int st_mtime_nsec ;   1535    unsigned int st_mtime_nsec ;
1536    unsigned long st_ctime ;   1536    unsigned long st_ctime ;
1537    unsigned long st_ctime_nsec ;   1537    unsigned long st_ctime_nsec ;
1538    unsigned long long st_ino ;   1538    unsigned long long st_ino ;
1539 };   1539 };
1540 struct vki_statfs {   1540 struct vki_statfs {
1541    __vki_u32 f_type ;   1541    __vki_u32 f_type ;
1542    __vki_u32 f_bsize ;   1542    __vki_u32 f_bsize ;
1543    __vki_u32 f_blocks ;   1543    __vki_u32 f_blocks ;
1544    __vki_u32 f_bfree ;   1544    __vki_u32 f_bfree ;
1545    __vki_u32 f_bavail ;   1545    __vki_u32 f_bavail ;
1546    __vki_u32 f_files ;   1546    __vki_u32 f_files ;
1547    __vki_u32 f_ffree ;   1547    __vki_u32 f_ffree ;
1548    __vki_kernel_fsid_t f_fsid ;   1548    __vki_kernel_fsid_t f_fsid ;
1549    __vki_u32 f_namelen ;   1549    __vki_u32 f_namelen ;
1550    __vki_u32 f_frsize ;   1550    __vki_u32 f_frsize ;
1551    __vki_u32 f_spare[5] ;   1551    __vki_u32 f_spare[5] ;
1552 };   1552 };
1553 struct vki_winsize {   1553 struct vki_winsize {
1554    unsigned short ws_row ;   1554    unsigned short ws_row ;
1555    unsigned short ws_col ;   1555    unsigned short ws_col ;
1556    unsigned short ws_xpixel ;   1556    unsigned short ws_xpixel ;
1557    unsigned short ws_ypixel ;   1557    unsigned short ws_ypixel ;
1558 };   1558 };
1559 struct vki_termio {   1559 struct vki_termio {
1560    unsigned short c_iflag ;   1560    unsigned short c_iflag ;
1561    unsigned short c_oflag ;   1561    unsigned short c_oflag ;
1562    unsigned short c_cflag ;   1562    unsigned short c_cflag ;
1563    unsigned short c_lflag ;   1563    unsigned short c_lflag ;
1564    unsigned char c_line ;   1564    unsigned char c_line ;
1565    unsigned char c_cc[8] ;   1565    unsigned char c_cc[8] ;
1566 };   1566 };
1567 typedef unsigned char vki_cc_t;   1567 typedef unsigned char vki_cc_t;
1568 typedef unsigned int vki_tcflag_t;   1568 typedef unsigned int vki_tcflag_t;
1569 struct vki_termios {   1569 struct vki_termios {
1570    vki_tcflag_t c_iflag ;   1570    vki_tcflag_t c_iflag ;
1571    vki_tcflag_t c_oflag ;   1571    vki_tcflag_t c_oflag ;
1572    vki_tcflag_t c_cflag ;   1572    vki_tcflag_t c_cflag ;
1573    vki_tcflag_t c_lflag ;   1573    vki_tcflag_t c_lflag ;
1574    vki_cc_t c_line ;   1574    vki_cc_t c_line ;
1575    vki_cc_t c_cc[19] ;   1575    vki_cc_t c_cc[19] ;
1576 };   1576 };
1577 struct vki_pollfd {   1577 struct vki_pollfd {
1578    int fd ;   1578    int fd ;
1579    short events ;   1579    short events ;
1580    short revents ;   1580    short revents ;
1581 };   1581 };
1582 struct vki_user_i387_struct {   1582 struct vki_user_i387_struct {
1583    long cwd ;   1583    long cwd ;
1584    long swd ;   1584    long swd ;
1585    long twd ;   1585    long twd ;
1586    long fip ;   1586    long fip ;
1587    long fcs ;   1587    long fcs ;
1588    long foo ;   1588    long foo ;
1589    long fos ;   1589    long fos ;
1590    long st_space[20] ;   1590    long st_space[20] ;
1591 };   1591 };
1592 struct vki_user_fxsr_struct {   1592 struct vki_user_fxsr_struct {
1593    unsigned short cwd ;   1593    unsigned short cwd ;
1594    unsigned short swd ;   1594    unsigned short swd ;
1595    unsigned short twd ;   1595    unsigned short twd ;
1596    unsigned short fop ;   1596    unsigned short fop ;
1597    long fip ;   1597    long fip ;
1598    long fcs ;   1598    long fcs ;
1599    long foo ;   1599    long foo ;
1600    long fos ;   1600    long fos ;
1601    long mxcsr ;   1601    long mxcsr ;
1602    long reserved ;   1602    long reserved ;
1603    long st_space[32] ;   1603    long st_space[32] ;
1604    long xmm_space[32] ;   1604    long xmm_space[32] ;
1605    long padding[56] ;   1605    long padding[56] ;
1606 };   1606 };
1607 struct vki_user_regs_struct {   1607 struct vki_user_regs_struct {
1608    long ebx ;   1608    long ebx ;
1609    long ecx ;   1609    long ecx ;
1610    long edx ;   1610    long edx ;
1611    long esi ;   1611    long esi ;
1612    long edi ;   1612    long edi ;
1613    long ebp ;   1613    long ebp ;
1614    long eax ;   1614    long eax ;
1615    unsigned short ds ;   1615    unsigned short ds ;
1616    unsigned short __ds ;   1616    unsigned short __ds ;
1617    unsigned short es ;   1617    unsigned short es ;
1618    unsigned short __es ;   1618    unsigned short __es ;
1619    unsigned short fs ;   1619    unsigned short fs ;
1620    unsigned short __fs ;   1620    unsigned short __fs ;
1621    unsigned short gs ;   1621    unsigned short gs ;
1622    unsigned short __gs ;   1622    unsigned short __gs ;
1623    long orig_eax ;   1623    long orig_eax ;
1624    long eip ;   1624    long eip ;
1625    unsigned short cs ;   1625    unsigned short cs ;
1626    unsigned short __cs ;   1626    unsigned short __cs ;
1627    long eflags ;   1627    long eflags ;
1628    long esp ;   1628    long esp ;
1629    unsigned short ss ;   1629    unsigned short ss ;
1630    unsigned short __ss ;   1630    unsigned short __ss ;
1631 };   1631 };
1632 typedef unsigned long vki_elf_greg_t;   1632 typedef unsigned long vki_elf_greg_t;
1633 typedef vki_elf_greg_t vki_elf_gregset_t[sizeof(struct vki_user_regs_struct ) / sizeof(vki_elf_greg_t )];   1633 typedef vki_elf_greg_t vki_elf_gregset_t[sizeof(struct vki_user_regs_struct ) / sizeof(vki_elf_greg_t )];
1634 typedef struct vki_user_i387_struct vki_elf_fpregset_t;   1634 typedef struct vki_user_i387_struct vki_elf_fpregset_t;
1635 typedef struct vki_user_fxsr_struct vki_elf_fpxregset_t;   1635 typedef struct vki_user_fxsr_struct vki_elf_fpxregset_t;
1636 struct vki_ucontext {   1636 struct vki_ucontext {
1637    unsigned long uc_flags ;   1637    unsigned long uc_flags ;
1638    struct vki_ucontext *uc_link ;   1638    struct vki_ucontext *uc_link ;
1639    vki_stack_t uc_stack ;   1639    vki_stack_t uc_stack ;
1640    struct vki_sigcontext uc_mcontext ;   1640    struct vki_sigcontext uc_mcontext ;
1641    vki_sigset_t uc_sigmask ;   1641    vki_sigset_t uc_sigmask ;
1642 };   1642 };
1643 struct vki_user_desc {   1643 struct vki_user_desc {
1644    unsigned int entry_number ;   1644    unsigned int entry_number ;
1645    unsigned long base_addr ;   1645    unsigned long base_addr ;
1646    unsigned int limit ;   1646    unsigned int limit ;
1647    unsigned int seg_32bit : 1 ;   1647    unsigned int seg_32bit : 1 ;
1648    unsigned int contents : 2 ;   1648    unsigned int contents : 2 ;
1649    unsigned int read_exec_only : 1 ;   1649    unsigned int read_exec_only : 1 ;
1650    unsigned int limit_in_pages : 1 ;   1650    unsigned int limit_in_pages : 1 ;
1651    unsigned int seg_not_present : 1 ;   1651    unsigned int seg_not_present : 1 ;
1652    unsigned int useable : 1 ;   1652    unsigned int useable : 1 ;
1653    unsigned int reserved : 25 ;   1653    unsigned int reserved : 25 ;
1654 };   1654 };
1655 typedef struct vki_user_desc vki_modify_ldt_t;   1655 typedef struct vki_user_desc vki_modify_ldt_t;
1656 struct vki_ipc64_perm {   1656 struct vki_ipc64_perm {
1657    __vki_kernel_key_t key ;   1657    __vki_kernel_key_t key ;
1658    __vki_kernel_uid32_t uid ;   1658    __vki_kernel_uid32_t uid ;
1659    __vki_kernel_gid32_t gid ;   1659    __vki_kernel_gid32_t gid ;
1660    __vki_kernel_uid32_t cuid ;   1660    __vki_kernel_uid32_t cuid ;
1661    __vki_kernel_gid32_t cgid ;   1661    __vki_kernel_gid32_t cgid ;
1662    __vki_kernel_mode_t mode ;   1662    __vki_kernel_mode_t mode ;
1663    unsigned short __pad1 ;   1663    unsigned short __pad1 ;
1664    unsigned short seq ;   1664    unsigned short seq ;
1665    unsigned short __pad2 ;   1665    unsigned short __pad2 ;
1666    unsigned long __unused1 ;   1666    unsigned long __unused1 ;
1667    unsigned long __unused2 ;   1667    unsigned long __unused2 ;
1668 };   1668 };
1669 struct vki_semid64_ds {   1669 struct vki_semid64_ds {
1670    struct vki_ipc64_perm sem_perm ;   1670    struct vki_ipc64_perm sem_perm ;
1671    __vki_kernel_time_t sem_otime ;   1671    __vki_kernel_time_t sem_otime ;
1672    unsigned long __unused1 ;   1672    unsigned long __unused1 ;
1673    __vki_kernel_time_t sem_ctime ;   1673    __vki_kernel_time_t sem_ctime ;
1674    unsigned long __unused2 ;   1674    unsigned long __unused2 ;
1675    unsigned long sem_nsems ;   1675    unsigned long sem_nsems ;
1676    unsigned long __unused3 ;   1676    unsigned long __unused3 ;
1677    unsigned long __unused4 ;   1677    unsigned long __unused4 ;
1678 };   1678 };
1679 struct vki_msqid64_ds {   1679 struct vki_msqid64_ds {
1680    struct vki_ipc64_perm msg_perm ;   1680    struct vki_ipc64_perm msg_perm ;
1681    __vki_kernel_time_t msg_stime ;   1681    __vki_kernel_time_t msg_stime ;
1682    unsigned long __unused1 ;   1682    unsigned long __unused1 ;
1683    __vki_kernel_time_t msg_rtime ;   1683    __vki_kernel_time_t msg_rtime ;
1684    unsigned long __unused2 ;   1684    unsigned long __unused2 ;
1685    __vki_kernel_time_t msg_ctime ;   1685    __vki_kernel_time_t msg_ctime ;
1686    unsigned long __unused3 ;   1686    unsigned long __unused3 ;
1687    unsigned long msg_cbytes ;   1687    unsigned long msg_cbytes ;
1688    unsigned long msg_qnum ;   1688    unsigned long msg_qnum ;
1689    unsigned long msg_qbytes ;   1689    unsigned long msg_qbytes ;
1690    __vki_kernel_pid_t msg_lspid ;   1690    __vki_kernel_pid_t msg_lspid ;
1691    __vki_kernel_pid_t msg_lrpid ;   1691    __vki_kernel_pid_t msg_lrpid ;
1692    unsigned long __unused4 ;   1692    unsigned long __unused4 ;
1693    unsigned long __unused5 ;   1693    unsigned long __unused5 ;
1694 };   1694 };
1695 struct vki_msgbuf;   1695 struct vki_msgbuf;
1696 struct vki_ipc_kludge {   1696 struct vki_ipc_kludge {
1697    struct vki_msgbuf *msgp ;   1697    struct vki_msgbuf *msgp ;
1698    long msgtyp ;   1698    long msgtyp ;
1699 };   1699 };
1700 struct vki_shmid64_ds {   1700 struct vki_shmid64_ds {
1701    struct vki_ipc64_perm shm_perm ;   1701    struct vki_ipc64_perm shm_perm ;
1702    vki_size_t shm_segsz ;   1702    vki_size_t shm_segsz ;
1703    __vki_kernel_time_t shm_atime ;   1703    __vki_kernel_time_t shm_atime ;
1704    unsigned long __unused1 ;   1704    unsigned long __unused1 ;
1705    __vki_kernel_time_t shm_dtime ;   1705    __vki_kernel_time_t shm_dtime ;
1706    unsigned long __unused2 ;   1706    unsigned long __unused2 ;
1707    __vki_kernel_time_t shm_ctime ;   1707    __vki_kernel_time_t shm_ctime ;
1708    unsigned long __unused3 ;   1708    unsigned long __unused3 ;
1709    __vki_kernel_pid_t shm_cpid ;   1709    __vki_kernel_pid_t shm_cpid ;
1710    __vki_kernel_pid_t shm_lpid ;   1710    __vki_kernel_pid_t shm_lpid ;
1711    unsigned long shm_nattch ;   1711    unsigned long shm_nattch ;
1712    unsigned long __unused4 ;   1712    unsigned long __unused4 ;
1713    unsigned long __unused5 ;   1713    unsigned long __unused5 ;
1714 };   1714 };
1715 struct vki_shminfo64 {   1715 struct vki_shminfo64 {
1716    unsigned long shmmax ;   1716    unsigned long shmmax ;
1717    unsigned long shmmin ;   1717    unsigned long shmmin ;
1718    unsigned long shmmni ;   1718    unsigned long shmmni ;
1719    unsigned long shmseg ;   1719    unsigned long shmseg ;
1720    unsigned long shmall ;   1720    unsigned long shmall ;
1721    unsigned long __unused1 ;   1721    unsigned long __unused1 ;
1722    unsigned long __unused2 ;   1722    unsigned long __unused2 ;
1723    unsigned long __unused3 ;   1723    unsigned long __unused3 ;
1724    unsigned long __unused4 ;   1724    unsigned long __unused4 ;
1725 };   1725 };
1726 struct vki_vm86_regs {   1726 struct vki_vm86_regs {
1727    long ebx ;   1727    long ebx ;
1728    long ecx ;   1728    long ecx ;
1729    long edx ;   1729    long edx ;
1730    long esi ;   1730    long esi ;
1731    long edi ;   1731    long edi ;
1732    long ebp ;   1732    long ebp ;
1733    long eax ;   1733    long eax ;
1734    long __null_ds ;   1734    long __null_ds ;
1735    long __null_es ;   1735    long __null_es ;
1736    long __null_fs ;   1736    long __null_fs ;
1737    long __null_gs ;   1737    long __null_gs ;
1738    long orig_eax ;   1738    long orig_eax ;
1739    long eip ;   1739    long eip ;
1740    unsigned short cs ;   1740    unsigned short cs ;
1741    unsigned short __csh ;   1741    unsigned short __csh ;
1742    long eflags ;   1742    long eflags ;
1743    long esp ;   1743    long esp ;
1744    unsigned short ss ;   1744    unsigned short ss ;
1745    unsigned short __ssh ;   1745    unsigned short __ssh ;
1746    unsigned short es ;   1746    unsigned short es ;
1747    unsigned short __esh ;   1747    unsigned short __esh ;
1748    unsigned short ds ;   1748    unsigned short ds ;
1749    unsigned short __dsh ;   1749    unsigned short __dsh ;
1750    unsigned short fs ;   1750    unsigned short fs ;
1751    unsigned short __fsh ;   1751    unsigned short __fsh ;
1752    unsigned short gs ;   1752    unsigned short gs ;
1753    unsigned short __gsh ;   1753    unsigned short __gsh ;
1754 };   1754 };
1755 struct vki_revectored_struct {   1755 struct vki_revectored_struct {
1756    unsigned long __map[8] ;   1756    unsigned long __map[8] ;
1757 };   1757 };
1758 struct vki_vm86_struct {   1758 struct vki_vm86_struct {
1759    struct vki_vm86_regs regs ;   1759    struct vki_vm86_regs regs ;
1760    unsigned long flags ;   1760    unsigned long flags ;
1761    unsigned long screen_bitmap ;   1761    unsigned long screen_bitmap ;
1762    unsigned long cpu_type ;   1762    unsigned long cpu_type ;
1763    struct vki_revectored_struct int_revectored ;   1763    struct vki_revectored_struct int_revectored ;
1764    struct vki_revectored_struct int21_revectored ;   1764    struct vki_revectored_struct int21_revectored ;
1765 };   1765 };
1766 struct vki_vm86plus_info_struct {   1766 struct vki_vm86plus_info_struct {
1767    unsigned long force_return_for_pic : 1 ;   1767    unsigned long force_return_for_pic : 1 ;
1768    unsigned long vm86dbg_active : 1 ;   1768    unsigned long vm86dbg_active : 1 ;
1769    unsigned long vm86dbg_TFpendig : 1 ;   1769    unsigned long vm86dbg_TFpendig : 1 ;
1770    unsigned long unused : 28 ;   1770    unsigned long unused : 28 ;
1771    unsigned long is_vm86pus : 1 ;   1771    unsigned long is_vm86pus : 1 ;
1772    unsigned char vm86dbg_intxxtab[32] ;   1772    unsigned char vm86dbg_intxxtab[32] ;
1773 };   1773 };
1774 struct vki_vm86plus_struct {   1774 struct vki_vm86plus_struct {
1775    struct vki_vm86_regs regs ;   1775    struct vki_vm86_regs regs ;
1776    unsigned long flags ;   1776    unsigned long flags ;
1777    unsigned long screen_bitmap ;   1777    unsigned long screen_bitmap ;
1778    unsigned long cpu_type ;   1778    unsigned long cpu_type ;
1779    struct vki_revectored_struct int_revectored ;   1779    struct vki_revectored_struct int_revectored ;
1780    struct vki_revectored_struct int21_revectored ;   1780    struct vki_revectored_struct int21_revectored ;
1781    struct vki_vm86plus_info_struct vm86plus ;   1781    struct vki_vm86plus_info_struct vm86plus ;
1782 };   1782 };
1783 typedef __vki_s32 vki_int32_t;   1783 typedef __vki_s32 vki_int32_t;
1784 typedef __vki_u8 vki_uint8_t;   1784 typedef __vki_u8 vki_uint8_t;
1785 typedef __vki_u16 vki_uint16_t;   1785 typedef __vki_u16 vki_uint16_t;
1786 typedef __vki_u32 vki_uint32_t;   1786 typedef __vki_u32 vki_uint32_t;
1787 struct vki_sysinfo {   1787 struct vki_sysinfo {
1788    long uptime ;   1788    long uptime ;
1789    unsigned long loads[3] ;   1789    unsigned long loads[3] ;
1790    unsigned long totalram ;   1790    unsigned long totalram ;
1791    unsigned long freeram ;   1791    unsigned long freeram ;
1792    unsigned long sharedram ;   1792    unsigned long sharedram ;
1793    unsigned long bufferram ;   1793    unsigned long bufferram ;
1794    unsigned long totalswap ;   1794    unsigned long totalswap ;
1795    unsigned long freeswap ;   1795    unsigned long freeswap ;
1796    unsigned short procs ;   1796    unsigned short procs ;
1797    unsigned short pad ;   1797    unsigned short pad ;
1798    unsigned long totalhigh ;   1798    unsigned long totalhigh ;
1799    unsigned long freehigh ;   1799    unsigned long freehigh ;
1800    unsigned int mem_unit ;   1800    unsigned int mem_unit ;
1801    char _f[(20U - 2U * sizeof(long )) - sizeof(int )] ;   1801    char _f[(20U - 2U * sizeof(long )) - sizeof(int )] ;
1802 };   1802 };
1803 struct vki_timespec {   1803 struct vki_timespec {
1804    vki_time_t tv_sec ;   1804    vki_time_t tv_sec ;
1805    long tv_nsec ;   1805    long tv_nsec ;
1806 };   1806 };
1807 struct vki_timeval {   1807 struct vki_timeval {
1808    vki_time_t tv_sec ;   1808    vki_time_t tv_sec ;
1809    vki_suseconds_t tv_usec ;   1809    vki_suseconds_t tv_usec ;
1810 };   1810 };
1811 struct vki_timezone {   1811 struct vki_timezone {
1812    int tz_minuteswest ;   1812    int tz_minuteswest ;
1813    int tz_dsttime ;   1813    int tz_dsttime ;
1814 };   1814 };
1815 struct vki_itimerspec {   1815 struct vki_itimerspec {
1816    struct vki_timespec it_interval ;   1816    struct vki_timespec it_interval ;
1817    struct vki_timespec it_value ;   1817    struct vki_timespec it_value ;
1818 };   1818 };
1819 struct vki_itimerval {   1819 struct vki_itimerval {
1820    struct vki_timeval it_interval ;   1820    struct vki_timeval it_interval ;
1821    struct vki_timeval it_value ;   1821    struct vki_timeval it_value ;
1822 };   1822 };
1823 struct vki_timex {   1823 struct vki_timex {
1824    unsigned int modes ;   1824    unsigned int modes ;
1825    long offset ;   1825    long offset ;
1826    long freq ;   1826    long freq ;
1827    long maxerror ;   1827    long maxerror ;
1828    long esterror ;   1828    long esterror ;
1829    int status ;   1829    int status ;
1830    long constant ;   1830    long constant ;
1831    long precision ;   1831    long precision ;
1832    long tolerance ;   1832    long tolerance ;
1833    struct vki_timeval time ;   1833    struct vki_timeval time ;
1834    long tick ;   1834    long tick ;
1835    long ppsfreq ;   1835    long ppsfreq ;
1836    long jitter ;   1836    long jitter ;
1837    int shift ;   1837    int shift ;
1838    long stabil ;   1838    long stabil ;
1839    long jitcnt ;   1839    long jitcnt ;
1840    long calcnt ;   1840    long calcnt ;
1841    long errcnt ;   1841    long errcnt ;
1842    long stbcnt ;   1842    long stbcnt ;
1843    int  : 32 ;   1843    int  : 32 ;
1844    int  : 32 ;   1844    int  : 32 ;
1845    int  : 32 ;   1845    int  : 32 ;
1846    int  : 32 ;   1846    int  : 32 ;
1847    int  : 32 ;   1847    int  : 32 ;
1848    int  : 32 ;   1848    int  : 32 ;
1849    int  : 32 ;   1849    int  : 32 ;
1850    int  : 32 ;   1850    int  : 32 ;
1851    int  : 32 ;   1851    int  : 32 ;
1852    int  : 32 ;   1852    int  : 32 ;
1853    int  : 32 ;   1853    int  : 32 ;
1854    int  : 32 ;   1854    int  : 32 ;
1855 };   1855 };
1856 struct vki_tms {   1856 struct vki_tms {
1857    vki_clock_t tms_utime ;   1857    vki_clock_t tms_utime ;
1858    vki_clock_t tms_stime ;   1858    vki_clock_t tms_stime ;
1859    vki_clock_t tms_cutime ;   1859    vki_clock_t tms_cutime ;
1860    vki_clock_t tms_cstime ;   1860    vki_clock_t tms_cstime ;
1861 };   1861 };
1862 struct vki_utimbuf {   1862 struct vki_utimbuf {
1863    vki_time_t actime ;   1863    vki_time_t actime ;
1864    vki_time_t modtime ;   1864    vki_time_t modtime ;
1865 };   1865 };
1866 struct vki_sched_param {   1866 struct vki_sched_param {
1867    int sched_priority ;   1867    int sched_priority ;
1868 };   1868 };
1869 union vki_sigval {   1869 union vki_sigval {
1870    int sival_int ;   1870    int sival_int ;
1871    void *sival_ptr ;   1871    void *sival_ptr ;
1872 };   1872 };
1873 typedef union vki_sigval vki_sigval_t;   1873 typedef union vki_sigval vki_sigval_t;
1874 struct __anonstruct__kill_77 {   1874 struct __anonstruct__kill_77 {
1875    vki_pid_t _pid ;   1875    vki_pid_t _pid ;
1876    vki_uid_t _uid ;   1876    vki_uid_t _uid ;
1877 };   1877 };
1878 struct __anonstruct__timer_78 {   1878 struct __anonstruct__timer_78 {
1879    vki_timer_t _tid ;   1879    vki_timer_t _tid ;
1880    int _overrun ;   1880    int _overrun ;
1881    char _pad[sizeof(vki_uid_t ) - sizeof(int )] ;   1881    char _pad[sizeof(vki_uid_t ) - sizeof(int )] ;
1882    vki_sigval_t _sigval ;   1882    vki_sigval_t _sigval ;
1883    int _sys_private ;   1883    int _sys_private ;
1884 };   1884 };
1885 struct __anonstruct__rt_79 {   1885 struct __anonstruct__rt_79 {
1886    vki_pid_t _pid ;   1886    vki_pid_t _pid ;
1887    vki_uid_t _uid ;   1887    vki_uid_t _uid ;
1888    vki_sigval_t _sigval ;   1888    vki_sigval_t _sigval ;
1889 };   1889 };
1890 struct __anonstruct__sigchld_80 {   1890 struct __anonstruct__sigchld_80 {
1891    vki_pid_t _pid ;   1891    vki_pid_t _pid ;
1892    vki_uid_t _uid ;   1892    vki_uid_t _uid ;
1893    int _status ;   1893    int _status ;
1894    vki_clock_t _utime ;   1894    vki_clock_t _utime ;
1895    vki_clock_t _stime ;   1895    vki_clock_t _stime ;
1896 };   1896 };
1897 struct __anonstruct__sigfault_81 {   1897 struct __anonstruct__sigfault_81 {
1898    void *_addr ;   1898    void *_addr ;
1899 };   1899 };
1900 struct __anonstruct__sigpoll_82 {   1900 struct __anonstruct__sigpoll_82 {
1901    long _band ;   1901    long _band ;
1902    int _fd ;   1902    int _fd ;
1903 };   1903 };
1904 union __anonunion__sifields_76 {   1904 union __anonunion__sifields_76 {
1905    int _pad[(128U - 3U * sizeof(int )) / sizeof(int )] ;   1905    int _pad[(128U - 3U * sizeof(int )) / sizeof(int )] ;
1906    struct __anonstruct__kill_77 _kill ;   1906    struct __anonstruct__kill_77 _kill ;
1907    struct __anonstruct__timer_78 _timer ;   1907    struct __anonstruct__timer_78 _timer ;
1908    struct __anonstruct__rt_79 _rt ;   1908    struct __anonstruct__rt_79 _rt ;
1909    struct __anonstruct__sigchld_80 _sigchld ;   1909    struct __anonstruct__sigchld_80 _sigchld ;
1910    struct __anonstruct__sigfault_81 _sigfault ;   1910    struct __anonstruct__sigfault_81 _sigfault ;
1911    struct __anonstruct__sigpoll_82 _sigpoll ;   1911    struct __anonstruct__sigpoll_82 _sigpoll ;
1912 };   1912 };
1913 struct vki_siginfo {   1913 struct vki_siginfo {
1914    int si_signo ;   1914    int si_signo ;
1915    int si_errno ;   1915    int si_errno ;
1916    int si_code ;   1916    int si_code ;
1917    union __anonunion__sifields_76 _sifields ;   1917    union __anonunion__sifields_76 _sifields ;
1918 };   1918 };
1919 typedef struct vki_siginfo vki_siginfo_t;   1919 typedef struct vki_siginfo vki_siginfo_t;
1920 struct __anonstruct__sigev_thread_84 {   1920 struct __anonstruct__sigev_thread_84 {
1921    void (*_function)(vki_sigval_t  ) ;   1921    void (*_function)(vki_sigval_t  ) ;
1922    void *_attribute ;   1922    void *_attribute ;
1923 };   1923 };
1924 union __anonunion__sigev_un_83 {   1924 union __anonunion__sigev_un_83 {
1925    int _pad[(64U - (sizeof(int ) * 2U + sizeof(vki_sigval_t ))) / sizeof(int )] ;   1925    int _pad[(64U - (sizeof(int ) * 2U + sizeof(vki_sigval_t ))) / sizeof(int )] ;
1926    int _tid ;   1926    int _tid ;
1927    struct __anonstruct__sigev_thread_84 _sigev_thread ;   1927    struct __anonstruct__sigev_thread_84 _sigev_thread ;
1928 };   1928 };
1929 struct vki_sigevent {   1929 struct vki_sigevent {
1930    vki_sigval_t sigev_value ;   1930    vki_sigval_t sigev_value ;
1931    int sigev_signo ;   1931    int sigev_signo ;
1932    int sigev_notify ;   1932    int sigev_notify ;
1933    union __anonunion__sigev_un_83 _sigev_un ;   1933    union __anonunion__sigev_un_83 _sigev_un ;
1934 };   1934 };
1935 typedef struct vki_sigevent vki_sigevent_t;   1935 typedef struct vki_sigevent vki_sigevent_t;
1936 enum vki_sock_type {   1936 enum vki_sock_type {
1937     VKI_SOCK_STREAM = 1   1937     VKI_SOCK_STREAM = 1
1938 } ;   1938 } ;
1939 struct vki_iovec {   1939 struct vki_iovec {
1940    void *iov_base ;   1940    void *iov_base ;
1941    __vki_kernel_size_t iov_len ;   1941    __vki_kernel_size_t iov_len ;
1942 };   1942 };
1943 typedef unsigned short vki_sa_family_t;   1943 typedef unsigned short vki_sa_family_t;
1944 struct vki_sockaddr {   1944 struct vki_sockaddr {
1945    vki_sa_family_t sa_family ;   1945    vki_sa_family_t sa_family ;
1946    char sa_data[14] ;   1946    char sa_data[14] ;
1947 };   1947 };
1948 struct vki_msghdr {   1948 struct vki_msghdr {
1949    void *msg_name ;   1949    void *msg_name ;
1950    int msg_namelen ;   1950    int msg_namelen ;
1951    struct vki_iovec *msg_iov ;   1951    struct vki_iovec *msg_iov ;
1952    __vki_kernel_size_t msg_iovlen ;   1952    __vki_kernel_size_t msg_iovlen ;
1953    void *msg_control ;   1953    void *msg_control ;
1954    __vki_kernel_size_t msg_controllen ;   1954    __vki_kernel_size_t msg_controllen ;
1955    unsigned int msg_flags ;   1955    unsigned int msg_flags ;
1956 };   1956 };
1957 struct vki_cmsghdr {   1957 struct vki_cmsghdr {
1958    __vki_kernel_size_t cmsg_len ;   1958    __vki_kernel_size_t cmsg_len ;
1959    int cmsg_level ;   1959    int cmsg_level ;
1960    int cmsg_type ;   1960    int cmsg_type ;
1961 };   1961 };
1962 struct vki_in_addr {   1962 struct vki_in_addr {
1963    __vki_u32 s_addr ;   1963    __vki_u32 s_addr ;
1964 };   1964 };
1965 struct vki_sockaddr_in {   1965 struct vki_sockaddr_in {
1966    vki_sa_family_t sin_family ;   1966    vki_sa_family_t sin_family ;
1967    unsigned short sin_port ;   1967    unsigned short sin_port ;
1968    struct vki_in_addr sin_addr ;   1968    struct vki_in_addr sin_addr ;
1969    unsigned char __pad[((16U - sizeof(short )) - sizeof(unsigned short )) - sizeof(struct vki_in_addr )] ;   1969    unsigned char __pad[((16U - sizeof(short )) - sizeof(unsigned short )) - sizeof(struct vki_in_addr )] ;
1970 };   1970 };
1971 union __anonunion_vki_in6_u_85 {   1971 union __anonunion_vki_in6_u_85 {
1972    __vki_u8 u6_addr8[16] ;   1972    __vki_u8 u6_addr8[16] ;
1973    __vki_u16 u6_addr16[8] ;   1973    __vki_u16 u6_addr16[8] ;
1974    __vki_u32 u6_addr32[4] ;   1974    __vki_u32 u6_addr32[4] ;
1975 };   1975 };
1976 struct vki_in6_addr {   1976 struct vki_in6_addr {
1977    union __anonunion_vki_in6_u_85 vki_in6_u ;   1977    union __anonunion_vki_in6_u_85 vki_in6_u ;
1978 };   1978 };
1979 struct vki_sockaddr_in6 {   1979 struct vki_sockaddr_in6 {
1980    unsigned short sin6_family ;   1980    unsigned short sin6_family ;
1981    __vki_u16 sin6_port ;   1981    __vki_u16 sin6_port ;
1982    __vki_u32 sin6_flowinfo ;   1982    __vki_u32 sin6_flowinfo ;
1983    struct vki_in6_addr sin6_addr ;   1983    struct vki_in6_addr sin6_addr ;
1984    __vki_u32 sin6_scope_id ;   1984    __vki_u32 sin6_scope_id ;
1985 };   1985 };
1986 struct vki_sockaddr_un {   1986 struct vki_sockaddr_un {
1987    vki_sa_family_t sun_family ;   1987    vki_sa_family_t sun_family ;
1988    char sun_path[108] ;   1988    char sun_path[108] ;
1989 };   1989 };
1990 struct vki_ifmap {   1990 struct vki_ifmap {
1991    unsigned long mem_start ;   1991    unsigned long mem_start ;
1992    unsigned long mem_end ;   1992    unsigned long mem_end ;
1993    unsigned short base_addr ;   1993    unsigned short base_addr ;
1994    unsigned char irq ;   1994    unsigned char irq ;
1995    unsigned char dma ;   1995    unsigned char dma ;
1996    unsigned char port ;   1996    unsigned char port ;
1997 };   1997 };
1998 union __anonunion_ifs_ifsu_86 {   1998 union __anonunion_ifs_ifsu_86 {
1999    void *raw_hdlc ;   1999    void *raw_hdlc ;
2000    void *cisco ;   2000    void *cisco ;
2001    void *fr ;   2001    void *fr ;
2002    void *fr_pvc ;   2002    void *fr_pvc ;
2003    void *fr_pvc_info ;   2003    void *fr_pvc_info ;
2004    void *sync ;   2004    void *sync ;
2005    void *te1 ;   2005    void *te1 ;
2006 };   2006 };
2007 struct vki_if_settings {   2007 struct vki_if_settings {
2008    unsigned int type ;   2008    unsigned int type ;
2009    unsigned int size ;   2009    unsigned int size ;
2010    union __anonunion_ifs_ifsu_86 ifs_ifsu ;   2010    union __anonunion_ifs_ifsu_86 ifs_ifsu ;
2011 };   2011 };
2012 union __anonunion_ifr_ifrn_87 {   2012 union __anonunion_ifr_ifrn_87 {
2013    char ifrn_name[16] ;   2013    char ifrn_name[16] ;
2014 };   2014 };
2015 union __anonunion_ifr_ifru_88 {   2015 union __anonunion_ifr_ifru_88 {
2016    struct vki_sockaddr ifru_addr ;   2016    struct vki_sockaddr ifru_addr ;
2017    struct vki_sockaddr ifru_dstaddr ;   2017    struct vki_sockaddr ifru_dstaddr ;
2018    struct vki_sockaddr ifru_broadaddr ;   2018    struct vki_sockaddr ifru_broadaddr ;
2019    struct vki_sockaddr ifru_netmask ;   2019    struct vki_sockaddr ifru_netmask ;
2020    struct vki_sockaddr ifru_hwaddr ;   2020    struct vki_sockaddr ifru_hwaddr ;
2021    short ifru_flags ;   2021    short ifru_flags ;
2022    int ifru_ivalue ;   2022    int ifru_ivalue ;
2023    int ifru_mtu ;   2023    int ifru_mtu ;
2024    struct vki_ifmap ifru_map ;   2024    struct vki_ifmap ifru_map ;
2025    char ifru_slave[16] ;   2025    char ifru_slave[16] ;
2026    char ifru_newname[16] ;   2026    char ifru_newname[16] ;
2027    void *ifru_data ;   2027    void *ifru_data ;
2028    struct vki_if_settings ifru_settings ;   2028    struct vki_if_settings ifru_settings ;
2029 };   2029 };
2030 struct vki_ifreq {   2030 struct vki_ifreq {
2031    union __anonunion_ifr_ifrn_87 ifr_ifrn ;   2031    union __anonunion_ifr_ifrn_87 ifr_ifrn ;
2032    union __anonunion_ifr_ifru_88 ifr_ifru ;   2032    union __anonunion_ifr_ifru_88 ifr_ifru ;
2033 };   2033 };
2034 union __anonunion_ifc_ifcu_89 {   2034 union __anonunion_ifc_ifcu_89 {
2035    char *ifcu_buf ;   2035    char *ifcu_buf ;
2036    struct vki_ifreq *ifcu_req ;   2036    struct vki_ifreq *ifcu_req ;
2037 };   2037 };
2038 struct vki_ifconf {   2038 struct vki_ifconf {
2039    int ifc_len ;   2039    int ifc_len ;
2040    union __anonunion_ifc_ifcu_89 ifc_ifcu ;   2040    union __anonunion_ifc_ifcu_89 ifc_ifcu ;
2041 };   2041 };
2042 struct vki_arpreq {   2042 struct vki_arpreq {
2043    struct vki_sockaddr arp_pa ;   2043    struct vki_sockaddr arp_pa ;
2044    struct vki_sockaddr arp_ha ;   2044    struct vki_sockaddr arp_ha ;
2045    int arp_flags ;   2045    int arp_flags ;
2046    struct vki_sockaddr arp_netmask ;   2046    struct vki_sockaddr arp_netmask ;
2047    char arp_dev[16] ;   2047    char arp_dev[16] ;
2048 };   2048 };
2049 struct vki_rtentry {   2049 struct vki_rtentry {
2050    unsigned long rt_pad1 ;   2050    unsigned long rt_pad1 ;
2051    struct vki_sockaddr rt_dst ;   2051    struct vki_sockaddr rt_dst ;
2052    struct vki_sockaddr rt_gateway ;   2052    struct vki_sockaddr rt_gateway ;
2053    struct vki_sockaddr rt_genmask ;   2053    struct vki_sockaddr rt_genmask ;
2054    unsigned short rt_flags ;   2054    unsigned short rt_flags ;
2055    short rt_pad2 ;   2055    short rt_pad2 ;
2056    unsigned long rt_pad3 ;   2056    unsigned long rt_pad3 ;
2057    void *rt_pad4 ;   2057    void *rt_pad4 ;
2058    short rt_metric ;   2058    short rt_metric ;
2059    char *rt_dev ;   2059    char *rt_dev ;
2060    unsigned long rt_mtu ;   2060    unsigned long rt_mtu ;
2061    unsigned long rt_window ;   2061    unsigned long rt_window ;
2062    unsigned short rt_irtt ;   2062    unsigned short rt_irtt ;
2063 };   2063 };
2064 typedef __vki_s32 vki_sctp_assoc_t;   2064 typedef __vki_s32 vki_sctp_assoc_t;
2065 enum vki_sctp_optname {   2065 enum vki_sctp_optname {
2066     VKI_SCTP_RTOINFO = 0,   2066     VKI_SCTP_RTOINFO = 0,
2067     VKI_SCTP_ASSOCINFO = 1,   2067     VKI_SCTP_ASSOCINFO = 1,
2068     VKI_SCTP_INITMSG = 2,   2068     VKI_SCTP_INITMSG = 2,
2069     VKI_SCTP_NODELAY = 3,   2069     VKI_SCTP_NODELAY = 3,
2070     VKI_SCTP_AUTOCLOSE = 4,   2070     VKI_SCTP_AUTOCLOSE = 4,
2071     VKI_SCTP_SET_PEER_PRIMARY_ADDR = 5,   2071     VKI_SCTP_SET_PEER_PRIMARY_ADDR = 5,
2072     VKI_SCTP_PRIMARY_ADDR = 6,   2072     VKI_SCTP_PRIMARY_ADDR = 6,
2073     VKI_SCTP_ADAPTION_LAYER = 7,   2073     VKI_SCTP_ADAPTION_LAYER = 7,
2074     VKI_SCTP_DISABLE_FRAGMENTS = 8,   2074     VKI_SCTP_DISABLE_FRAGMENTS = 8,
2075     VKI_SCTP_PEER_ADDR_PARAMS = 9,   2075     VKI_SCTP_PEER_ADDR_PARAMS = 9,
2076     VKI_SCTP_DEFAULT_SEND_PARAM = 10,   2076     VKI_SCTP_DEFAULT_SEND_PARAM = 10,
2077     VKI_SCTP_EVENTS = 11,   2077     VKI_SCTP_EVENTS = 11,
2078     VKI_SCTP_I_WANT_MAPPED_V4_ADDR = 12,   2078     VKI_SCTP_I_WANT_MAPPED_V4_ADDR = 12,
2079     VKI_SCTP_MAXSEG = 13,   2079     VKI_SCTP_MAXSEG = 13,
2080     VKI_SCTP_STATUS = 14,   2080     VKI_SCTP_STATUS = 14,
2081     VKI_SCTP_GET_PEER_ADDR_INFO = 15,   2081     VKI_SCTP_GET_PEER_ADDR_INFO = 15,
2082     VKI_SCTP_SOCKOPT_BINDX_ADD = 100,   2082     VKI_SCTP_SOCKOPT_BINDX_ADD = 100,
2083     VKI_SCTP_SOCKOPT_BINDX_REM = 101,   2083     VKI_SCTP_SOCKOPT_BINDX_REM = 101,
2084     VKI_SCTP_SOCKOPT_PEELOFF = 102,   2084     VKI_SCTP_SOCKOPT_PEELOFF = 102,
2085     VKI_SCTP_GET_PEER_ADDRS_NUM = 103,   2085     VKI_SCTP_GET_PEER_ADDRS_NUM = 103,
2086     VKI_SCTP_GET_PEER_ADDRS = 104,   2086     VKI_SCTP_GET_PEER_ADDRS = 104,
2087     VKI_SCTP_GET_LOCAL_ADDRS_NUM = 105,   2087     VKI_SCTP_GET_LOCAL_ADDRS_NUM = 105,
2088     VKI_SCTP_GET_LOCAL_ADDRS = 106,   2088     VKI_SCTP_GET_LOCAL_ADDRS = 106,
2089     VKI_SCTP_SOCKOPT_CONNECTX = 107   2089     VKI_SCTP_SOCKOPT_CONNECTX = 107
2090 } ;   2090 } ;
2091 struct vki_sctp_getaddrs {   2091 struct vki_sctp_getaddrs {
2092    vki_sctp_assoc_t assoc_id ;   2092    vki_sctp_assoc_t assoc_id ;
2093    int addr_num ;   2093    int addr_num ;
2094    struct vki_sockaddr *addrs ;   2094    struct vki_sockaddr *addrs ;
2095 };   2095 };
2096 struct vki_rusage {   2096 struct vki_rusage {
2097    struct vki_timeval ru_utime ;   2097    struct vki_timeval ru_utime ;
2098    struct vki_timeval ru_stime ;   2098    struct vki_timeval ru_stime ;
2099    long ru_maxrss ;   2099    long ru_maxrss ;
2100    long ru_ixrss ;   2100    long ru_ixrss ;
2101    long ru_idrss ;   2101    long ru_idrss ;
2102    long ru_isrss ;   2102    long ru_isrss ;
2103    long ru_minflt ;   2103    long ru_minflt ;
2104    long ru_majflt ;   2104    long ru_majflt ;
2105    long ru_nswap ;   2105    long ru_nswap ;
2106    long ru_inblock ;   2106    long ru_inblock ;
2107    long ru_oublock ;   2107    long ru_oublock ;
2108    long ru_msgsnd ;   2108    long ru_msgsnd ;
2109    long ru_msgrcv ;   2109    long ru_msgrcv ;
2110    long ru_nsignals ;   2110    long ru_nsignals ;
2111    long ru_nvcsw ;   2111    long ru_nvcsw ;
2112    long ru_nivcsw ;   2112    long ru_nivcsw ;
2113 };   2113 };
2114 struct vki_rlimit {   2114 struct vki_rlimit {
2115    unsigned long rlim_cur ;   2115    unsigned long rlim_cur ;
2116    unsigned long rlim_max ;   2116    unsigned long rlim_max ;
2117 };   2117 };
2118 struct vki_rlimit64 {   2118 struct vki_rlimit64 {
2119    __vki_u64 rlim_cur ;   2119    __vki_u64 rlim_cur ;
2120    __vki_u64 rlim_max ;   2120    __vki_u64 rlim_max ;
2121 };   2121 };
2122 struct vki_elf_siginfo {   2122 struct vki_elf_siginfo {
2123    int si_signo ;   2123    int si_signo ;
2124    int si_code ;   2124    int si_code ;
2125    int si_errno ;   2125    int si_errno ;
2126 };   2126 };
2127 struct vki_elf_prstatus {   2127 struct vki_elf_prstatus {
2128    struct vki_elf_siginfo pr_info ;   2128    struct vki_elf_siginfo pr_info ;
2129    short pr_cursig ;   2129    short pr_cursig ;
2130    unsigned long pr_sigpend ;   2130    unsigned long pr_sigpend ;
2131    unsigned long pr_sighold ;   2131    unsigned long pr_sighold ;
2132    vki_pid_t pr_pid ;   2132    vki_pid_t pr_pid ;
2133    vki_pid_t pr_ppid ;   2133    vki_pid_t pr_ppid ;
2134    vki_pid_t pr_pgrp ;   2134    vki_pid_t pr_pgrp ;
2135    vki_pid_t pr_sid ;   2135    vki_pid_t pr_sid ;
2136    struct vki_timeval pr_utime ;   2136    struct vki_timeval pr_utime ;
2137    struct vki_timeval pr_stime ;   2137    struct vki_timeval pr_stime ;
2138    struct vki_timeval pr_cutime ;   2138    struct vki_timeval pr_cutime ;
2139    struct vki_timeval pr_cstime ;   2139    struct vki_timeval pr_cstime ;
2140    vki_elf_gregset_t pr_reg ;   2140    vki_elf_gregset_t pr_reg ;
2141    int pr_fpvalid ;   2141    int pr_fpvalid ;
2142 };   2142 };
2143 struct vki_elf_prpsinfo {   2143 struct vki_elf_prpsinfo {
2144    char pr_state ;   2144    char pr_state ;
2145    char pr_sname ;   2145    char pr_sname ;
2146    char pr_zomb ;   2146    char pr_zomb ;
2147    char pr_nice ;   2147    char pr_nice ;
2148    unsigned long pr_flag ;   2148    unsigned long pr_flag ;
2149    __vki_kernel_uid_t pr_uid ;   2149    __vki_kernel_uid_t pr_uid ;
2150    __vki_kernel_gid_t pr_gid ;   2150    __vki_kernel_gid_t pr_gid ;
2151    vki_pid_t pr_pid ;   2151    vki_pid_t pr_pid ;
2152    vki_pid_t pr_ppid ;   2152    vki_pid_t pr_ppid ;
2153    vki_pid_t pr_pgrp ;   2153    vki_pid_t pr_pgrp ;
2154    vki_pid_t pr_sid ;   2154    vki_pid_t pr_sid ;
2155    char pr_fname[16] ;   2155    char pr_fname[16] ;
2156    char pr_psargs[80] ;   2156    char pr_psargs[80] ;
2157 };   2157 };
2158 struct vki_epoll_event {   2158 struct vki_epoll_event {
2159    __vki_u32 events ;   2159    __vki_u32 events ;
2160    __vki_u64 data ;   2160    __vki_u64 data ;
2161 };   2161 };
2162 struct vki_mq_attr {   2162 struct vki_mq_attr {
2163    long mq_flags ;   2163    long mq_flags ;
2164    long mq_maxmsg ;   2164    long mq_maxmsg ;
2165    long mq_msgsize ;   2165    long mq_msgsize ;
2166    long mq_curmsgs ;   2166    long mq_curmsgs ;
2167    long __reserved[4] ;   2167    long __reserved[4] ;
2168 };   2168 };
2169 struct vki_new_utsname {   2169 struct vki_new_utsname {
2170    char sysname[65] ;   2170    char sysname[65] ;
2171    char nodename[65] ;   2171    char nodename[65] ;
2172    char release[65] ;   2172    char release[65] ;
2173    char version[65] ;   2173    char version[65] ;
2174    char machine[65] ;   2174    char machine[65] ;
2175    char domainname[65] ;   2175    char domainname[65] ;
2176 };   2176 };
2177 struct vki_mii_ioctl_data {   2177 struct vki_mii_ioctl_data {
2178    vki_u16 phy_id ;   2178    vki_u16 phy_id ;
2179    vki_u16 reg_num ;   2179    vki_u16 reg_num ;
2180    vki_u16 val_in ;   2180    vki_u16 val_in ;
2181    vki_u16 val_out ;   2181    vki_u16 val_out ;
2182 };   2182 };
2183 struct __vki_user_cap_header_struct {   2183 struct __vki_user_cap_header_struct {
2184    __vki_u32 version ;   2184    __vki_u32 version ;
2185    int pid ;   2185    int pid ;
2186 };   2186 };
2187 typedef struct __vki_user_cap_header_struct *vki_cap_user_header_t;   2187 typedef struct __vki_user_cap_header_struct *vki_cap_user_header_t;
2188 struct __vki_user_cap_data_struct {   2188 struct __vki_user_cap_data_struct {
2189    __vki_u32 effective ;   2189    __vki_u32 effective ;
2190    __vki_u32 permitted ;   2190    __vki_u32 permitted ;
2191    __vki_u32 inheritable ;   2191    __vki_u32 inheritable ;
2192 };   2192 };
2193 typedef struct __vki_user_cap_data_struct *vki_cap_user_data_t;   2193 typedef struct __vki_user_cap_data_struct *vki_cap_user_data_t;
2194 struct vki_ipc_perm {   2194 struct vki_ipc_perm {
2195    __vki_kernel_key_t key ;   2195    __vki_kernel_key_t key ;
2196    __vki_kernel_uid_t uid ;   2196    __vki_kernel_uid_t uid ;
2197    __vki_kernel_gid_t gid ;   2197    __vki_kernel_gid_t gid ;
2198    __vki_kernel_uid_t cuid ;   2198    __vki_kernel_uid_t cuid ;
2199    __vki_kernel_gid_t cgid ;   2199    __vki_kernel_gid_t cgid ;
2200    __vki_kernel_mode_t mode ;   2200    __vki_kernel_mode_t mode ;
2201    unsigned short seq ;   2201    unsigned short seq ;
2202 };   2202 };
2203 struct vki_semid_ds {   2203 struct vki_semid_ds {
2204    struct vki_ipc_perm sem_perm ;   2204    struct vki_ipc_perm sem_perm ;
2205    __vki_kernel_time_t sem_otime ;   2205    __vki_kernel_time_t sem_otime ;
2206    __vki_kernel_time_t sem_ctime ;   2206    __vki_kernel_time_t sem_ctime ;
2207    void *sem_base ;   2207    void *sem_base ;
2208    void *sem_pending ;   2208    void *sem_pending ;
2209    void **sem_pending_last ;   2209    void **sem_pending_last ;
2210    void *undo ;   2210    void *undo ;
2211    unsigned short sem_nsems ;   2211    unsigned short sem_nsems ;
2212 };   2212 };
2213 struct vki_sembuf {   2213 struct vki_sembuf {
2214    unsigned short sem_num ;   2214    unsigned short sem_num ;
2215    short sem_op ;   2215    short sem_op ;
2216    short sem_flg ;   2216    short sem_flg ;
2217 };   2217 };
2218 struct vki_seminfo;   2218 struct vki_seminfo;
2219 union vki_semun {   2219 union vki_semun {
2220    int val ;   2220    int val ;
2221    struct vki_semid_ds *buf ;   2221    struct vki_semid_ds *buf ;
2222    unsigned short *array ;   2222    unsigned short *array ;
2223    struct vki_seminfo *__buf ;   2223    struct vki_seminfo *__buf ;
2224    void *__pad ;   2224    void *__pad ;
2225 };   2225 };
2226 struct vki_seminfo {   2226 struct vki_seminfo {
2227    int semmap ;   2227    int semmap ;
2228    int semmni ;   2228    int semmni ;
2229    int semmns ;   2229    int semmns ;
2230    int semmnu ;   2230    int semmnu ;
2231    int semmsl ;   2231    int semmsl ;
2232    int semopm ;   2232    int semopm ;
2233    int semume ;   2233    int semume ;
2234    int semusz ;   2234    int semusz ;
2235    int semvmx ;   2235    int semvmx ;
2236    int semaem ;   2236    int semaem ;
2237 };   2237 };
2238 struct vki_robust_list {   2238 struct vki_robust_list {
2239    struct vki_robust_list *next ;   2239    struct vki_robust_list *next ;
2240 };   2240 };
2241 struct vki_robust_list_head {   2241 struct vki_robust_list_head {
2242    struct vki_robust_list list ;   2242    struct vki_robust_list list ;
2243    long futex_offset ;   2243    long futex_offset ;
2244    struct vki_robust_list *list_op_pending ;   2244    struct vki_robust_list *list_op_pending ;
2245 };   2245 };
2246 struct vki_dirent {   2246 struct vki_dirent {
2247    long d_ino ;   2247    long d_ino ;
2248    __vki_kernel_off_t d_off ;   2248    __vki_kernel_off_t d_off ;
2249    unsigned short d_reclen ;   2249    unsigned short d_reclen ;
2250    char d_name[256] ;   2250    char d_name[256] ;
2251 };   2251 };
2252 struct __vki_sysctl_args {   2252 struct __vki_sysctl_args {
2253    int *name ;   2253    int *name ;
2254    int nlen ;   2254    int nlen ;
2255    void *oldval ;   2255    void *oldval ;
2256    vki_size_t *oldlenp ;   2256    vki_size_t *oldlenp ;
2257    void *newval ;   2257    void *newval ;
2258    vki_size_t newlen ;   2258    vki_size_t newlen ;
2259    unsigned long __unused[4] ;   2259    unsigned long __unused[4] ;
2260 };   2260 };
2261 typedef unsigned long vki_aio_context_t;   2261 typedef unsigned long vki_aio_context_t;
2262 enum __anonenum_90 {   2262 enum __anonenum_90 {
2263     VKI_IOCB_CMD_PREAD = 0,   2263     VKI_IOCB_CMD_PREAD = 0,
2264     VKI_IOCB_CMD_PWRITE = 1,   2264     VKI_IOCB_CMD_PWRITE = 1,
2265     VKI_IOCB_CMD_FSYNC = 2,   2265     VKI_IOCB_CMD_FSYNC = 2,
2266     VKI_IOCB_CMD_FDSYNC = 3,   2266     VKI_IOCB_CMD_FDSYNC = 3,
2267     VKI_IOCB_CMD_PREADV = 7,   2267     VKI_IOCB_CMD_PREADV = 7,
2268     VKI_IOCB_CMD_PWRITEV = 8   2268     VKI_IOCB_CMD_PWRITEV = 8
2269 } ;   2269 } ;
2270 struct vki_io_event {   2270 struct vki_io_event {
2271    __vki_u64 data ;   2271    __vki_u64 data ;
2272    __vki_u64 obj ;   2272    __vki_u64 obj ;
2273    __vki_s64 result ;   2273    __vki_s64 result ;
2274    __vki_s64 result2 ;   2274    __vki_s64 result2 ;
2275 };   2275 };
2276 struct vki_iocb {   2276 struct vki_iocb {
2277    __vki_u64 aio_data ;   2277    __vki_u64 aio_data ;
2278    __vki_u32 aio_key ;   2278    __vki_u32 aio_key ;
2279    __vki_u32 aio_reserved1 ;   2279    __vki_u32 aio_reserved1 ;
2280    __vki_u16 aio_lio_opcode ;   2280    __vki_u16 aio_lio_opcode ;
2281    __vki_s16 aio_reqprio ;   2281    __vki_s16 aio_reqprio ;
2282    __vki_u32 aio_fildes ;   2282    __vki_u32 aio_fildes ;
2283    __vki_u64 aio_buf ;   2283    __vki_u64 aio_buf ;
2284    __vki_u64 aio_nbytes ;   2284    __vki_u64 aio_nbytes ;
2285    __vki_s64 aio_offset ;   2285    __vki_s64 aio_offset ;
2286    __vki_u64 aio_reserved2 ;   2286    __vki_u64 aio_reserved2 ;
2287    __vki_u64 aio_reserved3 ;   2287    __vki_u64 aio_reserved3 ;
2288 };   2288 };
2289 struct vki_aio_ring {   2289 struct vki_aio_ring {
2290    unsigned int id ;   2290    unsigned int id ;
2291    unsigned int nr ;   2291    unsigned int nr ;
2292    unsigned int head ;   2292    unsigned int head ;
2293    unsigned int tail ;   2293    unsigned int tail ;
2294    unsigned int magic ;   2294    unsigned int magic ;
2295    unsigned int compat_features ;   2295    unsigned int compat_features ;
2296    unsigned int incompat_features ;   2296    unsigned int incompat_features ;
2297    unsigned int header_length ;   2297    unsigned int header_length ;
2298    struct vki_io_event io_events[0] ;   2298    struct vki_io_event io_events[0] ;
2299 };   2299 };
2300 struct vki_msg;   2300 struct vki_msg;
2301 struct vki_msqid_ds {   2301 struct vki_msqid_ds {
2302    struct vki_ipc_perm msg_perm ;   2302    struct vki_ipc_perm msg_perm ;
2303    struct vki_msg *msg_first ;   2303    struct vki_msg *msg_first ;
2304    struct vki_msg *msg_last ;   2304    struct vki_msg *msg_last ;
2305    __vki_kernel_time_t msg_stime ;   2305    __vki_kernel_time_t msg_stime ;
2306    __vki_kernel_time_t msg_rtime ;   2306    __vki_kernel_time_t msg_rtime ;
2307    __vki_kernel_time_t msg_ctime ;   2307    __vki_kernel_time_t msg_ctime ;
2308    unsigned long msg_lcbytes ;   2308    unsigned long msg_lcbytes ;
2309    unsigned long msg_lqbytes ;   2309    unsigned long msg_lqbytes ;
2310    unsigned short msg_cbytes ;   2310    unsigned short msg_cbytes ;
2311    unsigned short msg_qnum ;   2311    unsigned short msg_qnum ;
2312    unsigned short msg_qbytes ;   2312    unsigned short msg_qbytes ;
2313    __vki_kernel_ipc_pid_t msg_lspid ;   2313    __vki_kernel_ipc_pid_t msg_lspid ;
2314    __vki_kernel_ipc_pid_t msg_lrpid ;   2314    __vki_kernel_ipc_pid_t msg_lrpid ;
2315 };   2315 };
2316 struct vki_msgbuf {   2316 struct vki_msgbuf {
2317    long mtype ;   2317    long mtype ;
2318    char mtext[1] ;   2318    char mtext[1] ;
2319 };   2319 };
2320 struct vki_msginfo {   2320 struct vki_msginfo {
2321    int msgpool ;   2321    int msgpool ;
2322    int msgmap ;   2322    int msgmap ;
2323    int msgmax ;   2323    int msgmax ;
2324    int msgmnb ;   2324    int msgmnb ;
2325    int msgmni ;   2325    int msgmni ;
2326    int msgssz ;   2326    int msgssz ;
2327    int msgtql ;   2327    int msgtql ;
2328    unsigned short msgseg ;   2328    unsigned short msgseg ;
2329 };   2329 };
2330 struct vki_shmid_ds {   2330 struct vki_shmid_ds {
2331    struct vki_ipc_perm shm_perm ;   2331    struct vki_ipc_perm shm_perm ;
2332    int shm_segsz ;   2332    int shm_segsz ;
2333    __vki_kernel_time_t shm_atime ;   2333    __vki_kernel_time_t shm_atime ;
2334    __vki_kernel_time_t shm_dtime ;   2334    __vki_kernel_time_t shm_dtime ;
2335    __vki_kernel_time_t shm_ctime ;   2335    __vki_kernel_time_t shm_ctime ;
2336    __vki_kernel_ipc_pid_t shm_cpid ;   2336    __vki_kernel_ipc_pid_t shm_cpid ;
2337    __vki_kernel_ipc_pid_t shm_lpid ;   2337    __vki_kernel_ipc_pid_t shm_lpid ;
2338    unsigned short shm_nattch ;   2338    unsigned short shm_nattch ;
2339    unsigned short shm_unused ;   2339    unsigned short shm_unused ;
2340    void *shm_unused2 ;   2340    void *shm_unused2 ;
2341    void *shm_unused3 ;   2341    void *shm_unused3 ;
2342 };   2342 };
2343 struct vki_shminfo {   2343 struct vki_shminfo {
2344    int shmmax ;   2344    int shmmax ;
2345    int shmmin ;   2345    int shmmin ;
2346    int shmmni ;   2346    int shmmni ;
2347    int shmseg ;   2347    int shmseg ;
2348    int shmall ;   2348    int shmall ;
2349 };   2349 };
2350 struct vki_shm_info {   2350 struct vki_shm_info {
2351    int used_ids ;   2351    int used_ids ;
2352    unsigned long shm_tot ;   2352    unsigned long shm_tot ;
2353    unsigned long shm_rss ;   2353    unsigned long shm_rss ;
2354    unsigned long shm_swp ;   2354    unsigned long shm_swp ;
2355    unsigned long swap_attempts ;   2355    unsigned long swap_attempts ;
2356    unsigned long swap_successes ;   2356    unsigned long swap_successes ;
2357 };   2357 };
2358 struct vki_rtc_time {   2358 struct vki_rtc_time {
2359    int tm_sec ;   2359    int tm_sec ;
2360    int tm_min ;   2360    int tm_min ;
2361    int tm_hour ;   2361    int tm_hour ;
2362    int tm_mday ;   2362    int tm_mday ;
2363    int tm_mon ;   2363    int tm_mon ;
2364    int tm_year ;   2364    int tm_year ;
2365    int tm_wday ;   2365    int tm_wday ;
2366    int tm_yday ;   2366    int tm_yday ;
2367    int tm_isdst ;   2367    int tm_isdst ;
2368 };   2368 };
2369 struct __anonstruct_vki_isdn_net_ioctl_phone_91 {   2369 struct __anonstruct_vki_isdn_net_ioctl_phone_91 {
2370    char name[10] ;   2370    char name[10] ;
2371    char phone[32] ;   2371    char phone[32] ;
2372    int outgoing ;   2372    int outgoing ;
2373 };   2373 };
2374 typedef struct __anonstruct_vki_isdn_net_ioctl_phone_91 vki_isdn_net_ioctl_phone;   2374 typedef struct __anonstruct_vki_isdn_net_ioctl_phone_91 vki_isdn_net_ioctl_phone;
2375 struct vki_ppdev_frob_struct {   2375 struct vki_ppdev_frob_struct {
2376    unsigned char mask ;   2376    unsigned char mask ;
2377    unsigned char val ;   2377    unsigned char val ;
2378 };   2378 };
2379 struct vki_sg_io_hdr {   2379 struct vki_sg_io_hdr {
2380    int interface_id ;   2380    int interface_id ;
2381    int dxfer_direction ;   2381    int dxfer_direction ;
2382    unsigned char cmd_len ;   2382    unsigned char cmd_len ;
2383    unsigned char mx_sb_len ;   2383    unsigned char mx_sb_len ;
2384    unsigned short iovec_count ;   2384    unsigned short iovec_count ;
2385    unsigned int dxfer_len ;   2385    unsigned int dxfer_len ;
2386    void *dxferp ;   2386    void *dxferp ;
2387    unsigned char *cmdp ;   2387    unsigned char *cmdp ;
2388    void *sbp ;   2388    void *sbp ;
2389    unsigned int timeout ;   2389    unsigned int timeout ;
2390    unsigned int flags ;   2390    unsigned int flags ;
2391    int pack_id ;   2391    int pack_id ;
2392    void *usr_ptr ;   2392    void *usr_ptr ;
2393    unsigned char status ;   2393    unsigned char status ;
2394    unsigned char masked_status ;   2394    unsigned char masked_status ;
2395    unsigned char msg_status ;   2395    unsigned char msg_status ;
2396    unsigned char sb_len_wr ;   2396    unsigned char sb_len_wr ;
2397    unsigned short host_status ;   2397    unsigned short host_status ;
2398    unsigned short driver_status ;   2398    unsigned short driver_status ;
2399    int resid ;   2399    int resid ;
2400    unsigned int duration ;   2400    unsigned int duration ;
2401    unsigned int info ;   2401    unsigned int info ;
2402 };   2402 };
2403 typedef struct vki_sg_io_hdr vki_sg_io_hdr_t;   2403 typedef struct vki_sg_io_hdr vki_sg_io_hdr_t;
2404 struct vki_sg_scsi_id {   2404 struct vki_sg_scsi_id {
2405    int host_no ;   2405    int host_no ;
2406    int channel ;   2406    int channel ;
2407    int scsi_id ;   2407    int scsi_id ;
2408    int lun ;   2408    int lun ;
2409    int scsi_type ;   2409    int scsi_type ;
2410    short h_cmd_per_lun ;   2410    short h_cmd_per_lun ;
2411    short d_queue_depth ;   2411    short d_queue_depth ;
2412    int unused[2] ;   2412    int unused[2] ;
2413 };   2413 };
2414 typedef struct vki_sg_scsi_id vki_sg_scsi_id_t;   2414 typedef struct vki_sg_scsi_id vki_sg_scsi_id_t;
2415 struct vki_cdrom_msf0 {   2415 struct vki_cdrom_msf0 {
2416    __vki_u8 minute ;   2416    __vki_u8 minute ;
2417    __vki_u8 second ;   2417    __vki_u8 second ;
2418    __vki_u8 frame ;   2418    __vki_u8 frame ;
2419 };   2419 };
2420 union vki_cdrom_addr {   2420 union vki_cdrom_addr {
2421    struct vki_cdrom_msf0 msf ;   2421    struct vki_cdrom_msf0 msf ;
2422    int lba ;   2422    int lba ;
2423 };   2423 };
2424 struct vki_cdrom_msf {   2424 struct vki_cdrom_msf {
2425    __vki_u8 cdmsf_min0 ;   2425    __vki_u8 cdmsf_min0 ;
2426    __vki_u8 cdmsf_sec0 ;   2426    __vki_u8 cdmsf_sec0 ;
2427    __vki_u8 cdmsf_frame0 ;   2427    __vki_u8 cdmsf_frame0 ;
2428    __vki_u8 cdmsf_min1 ;   2428    __vki_u8 cdmsf_min1 ;
2429    __vki_u8 cdmsf_sec1 ;   2429    __vki_u8 cdmsf_sec1 ;
2430    __vki_u8 cdmsf_frame1 ;   2430    __vki_u8 cdmsf_frame1 ;
2431 };   2431 };
2432 struct vki_cdrom_tochdr {   2432 struct vki_cdrom_tochdr {
2433    __vki_u8 cdth_trk0 ;   2433    __vki_u8 cdth_trk0 ;
2434    __vki_u8 cdth_trk1 ;   2434    __vki_u8 cdth_trk1 ;
2435 };   2435 };
2436 struct vki_cdrom_volctrl {   2436 struct vki_cdrom_volctrl {
2437    __vki_u8 channel0 ;   2437    __vki_u8 channel0 ;
2438    __vki_u8 channel1 ;   2438    __vki_u8 channel1 ;
2439    __vki_u8 channel2 ;   2439    __vki_u8 channel2 ;
2440    __vki_u8 channel3 ;   2440    __vki_u8 channel3 ;
2441 };   2441 };
2442 struct vki_cdrom_subchnl {   2442 struct vki_cdrom_subchnl {
2443    __vki_u8 cdsc_format ;   2443    __vki_u8 cdsc_format ;
2444    __vki_u8 cdsc_audiostatus ;   2444    __vki_u8 cdsc_audiostatus ;
2445    __vki_u8 cdsc_adr : 4 ;   2445    __vki_u8 cdsc_adr : 4 ;
2446    __vki_u8 cdsc_ctrl : 4 ;   2446    __vki_u8 cdsc_ctrl : 4 ;
2447    __vki_u8 cdsc_trk ;   2447    __vki_u8 cdsc_trk ;
2448    __vki_u8 cdsc_ind ;   2448    __vki_u8 cdsc_ind ;
2449    union vki_cdrom_addr cdsc_absaddr ;   2449    union vki_cdrom_addr cdsc_absaddr ;
2450    union vki_cdrom_addr cdsc_reladdr ;   2450    union vki_cdrom_addr cdsc_reladdr ;
2451 };   2451 };
2452 struct vki_cdrom_tocentry {   2452 struct vki_cdrom_tocentry {
2453    __vki_u8 cdte_track ;   2453    __vki_u8 cdte_track ;
2454    __vki_u8 cdte_adr : 4 ;   2454    __vki_u8 cdte_adr : 4 ;
2455    __vki_u8 cdte_ctrl : 4 ;   2455    __vki_u8 cdte_ctrl : 4 ;
2456    __vki_u8 cdte_format ;   2456    __vki_u8 cdte_format ;
2457    union vki_cdrom_addr cdte_addr ;   2457    union vki_cdrom_addr cdte_addr ;
2458    __vki_u8 cdte_datamode ;   2458    __vki_u8 cdte_datamode ;
2459 };   2459 };
2460 struct vki_cdrom_read {   2460 struct vki_cdrom_read {
2461    int cdread_lba ;   2461    int cdread_lba ;
2462    char *cdread_bufaddr ;   2462    char *cdread_bufaddr ;
2463    int cdread_buflen ;   2463    int cdread_buflen ;
2464 };   2464 };
2465 struct vki_cdrom_read_audio {   2465 struct vki_cdrom_read_audio {
2466    union vki_cdrom_addr addr ;   2466    union vki_cdrom_addr addr ;
2467    __vki_u8 addr_format ;   2467    __vki_u8 addr_format ;
2468    int nframes ;   2468    int nframes ;
2469    __vki_u8 *buf ;   2469    __vki_u8 *buf ;
2470 };   2470 };
2471 struct vki_cdrom_multisession {   2471 struct vki_cdrom_multisession {
2472    union vki_cdrom_addr addr ;   2472    union vki_cdrom_addr addr ;
2473    __vki_u8 xa_flag ;   2473    __vki_u8 xa_flag ;
2474    __vki_u8 addr_format ;   2474    __vki_u8 addr_format ;
2475 };   2475 };
2476 struct vki_cdrom_mcn {   2476 struct vki_cdrom_mcn {
2477    __vki_u8 medium_catalog_number[14] ;   2477    __vki_u8 medium_catalog_number[14] ;
2478 };   2478 };
2479 struct vki_cdrom_generic_command {   2479 struct vki_cdrom_generic_command {
2480    unsigned char cmd[12] ;   2480    unsigned char cmd[12] ;
2481    unsigned char *buffer ;   2481    unsigned char *buffer ;
2482    unsigned int buflen ;   2482    unsigned int buflen ;
2483    int stat ;   2483    int stat ;
2484    void *sense ;   2484    void *sense ;
2485    unsigned char data_direction ;   2485    unsigned char data_direction ;
2486    int quiet ;   2486    int quiet ;
2487    int timeout ;   2487    int timeout ;
2488    void *reserved[1] ;   2488    void *reserved[1] ;
2489 };   2489 };
2490 struct vki_audio_buf_info {   2490 struct vki_audio_buf_info {
2491    int fragments ;   2491    int fragments ;
2492    int fragstotal ;   2492    int fragstotal ;
2493    int fragsize ;   2493    int fragsize ;
2494    int bytes ;   2494    int bytes ;
2495 };   2495 };
2496 typedef struct vki_audio_buf_info vki_audio_buf_info;   2496 typedef struct vki_audio_buf_info vki_audio_buf_info;
2497 struct vki_hd_geometry {   2497 struct vki_hd_geometry {
2498    unsigned char heads ;   2498    unsigned char heads ;
2499    unsigned char sectors ;   2499    unsigned char sectors ;
2500    unsigned short cylinders ;   2500    unsigned short cylinders ;
2501    unsigned long start ;   2501    unsigned long start ;
2502 };   2502 };
2503 struct vki_fb_fix_screeninfo {   2503 struct vki_fb_fix_screeninfo {
2504    char id[16] ;   2504    char id[16] ;
2505    unsigned long smem_start ;   2505    unsigned long smem_start ;
2506    __vki_u32 smem_len ;   2506    __vki_u32 smem_len ;
2507    __vki_u32 type ;   2507    __vki_u32 type ;
2508    __vki_u32 type_aux ;   2508    __vki_u32 type_aux ;
2509    __vki_u32 visual ;   2509    __vki_u32 visual ;
2510    __vki_u16 xpanstep ;   2510    __vki_u16 xpanstep ;
2511    __vki_u16 ypanstep ;   2511    __vki_u16 ypanstep ;
2512    __vki_u16 ywrapstep ;   2512    __vki_u16 ywrapstep ;
2513    __vki_u32 line_length ;   2513    __vki_u32 line_length ;
2514    unsigned long mmio_start ;   2514    unsigned long mmio_start ;
2515    __vki_u32 mmio_len ;   2515    __vki_u32 mmio_len ;
2516    __vki_u32 accel ;   2516    __vki_u32 accel ;
2517    __vki_u16 reserved[3] ;   2517    __vki_u16 reserved[3] ;
2518 };   2518 };
2519 struct vki_fb_bitfield {   2519 struct vki_fb_bitfield {
2520    __vki_u32 offset ;   2520    __vki_u32 offset ;
2521    __vki_u32 length ;   2521    __vki_u32 length ;
2522    __vki_u32 msb_right ;   2522    __vki_u32 msb_right ;
2523 };   2523 };
2524 struct vki_fb_var_screeninfo {   2524 struct vki_fb_var_screeninfo {
2525    __vki_u32 xres ;   2525    __vki_u32 xres ;
2526    __vki_u32 yres ;   2526    __vki_u32 yres ;
2527    __vki_u32 xres_virtual ;   2527    __vki_u32 xres_virtual ;
2528    __vki_u32 yres_virtual ;   2528    __vki_u32 yres_virtual ;
2529    __vki_u32 xoffset ;   2529    __vki_u32 xoffset ;
2530    __vki_u32 yoffset ;   2530    __vki_u32 yoffset ;
2531    __vki_u32 bits_per_pixel ;   2531    __vki_u32 bits_per_pixel ;
2532    __vki_u32 grayscale ;   2532    __vki_u32 grayscale ;
2533    struct vki_fb_bitfield red ;   2533    struct vki_fb_bitfield red ;
2534    struct vki_fb_bitfield green ;   2534    struct vki_fb_bitfield green ;
2535    struct vki_fb_bitfield blue ;   2535    struct vki_fb_bitfield blue ;
2536    struct vki_fb_bitfield transp ;   2536    struct vki_fb_bitfield transp ;
2537    __vki_u32 nonstd ;   2537    __vki_u32 nonstd ;
2538    __vki_u32 activate ;   2538    __vki_u32 activate ;
2539    __vki_u32 height ;   2539    __vki_u32 height ;
2540    __vki_u32 width ;   2540    __vki_u32 width ;
2541    __vki_u32 accel_flags ;   2541    __vki_u32 accel_flags ;
2542    __vki_u32 pixclock ;   2542    __vki_u32 pixclock ;
2543    __vki_u32 left_margin ;   2543    __vki_u32 left_margin ;
2544    __vki_u32 right_margin ;   2544    __vki_u32 right_margin ;
2545    __vki_u32 upper_margin ;   2545    __vki_u32 upper_margin ;
2546    __vki_u32 lower_margin ;   2546    __vki_u32 lower_margin ;
2547    __vki_u32 hsync_len ;   2547    __vki_u32 hsync_len ;
2548    __vki_u32 vsync_len ;   2548    __vki_u32 vsync_len ;
2549    __vki_u32 sync ;   2549    __vki_u32 sync ;
2550    __vki_u32 vmode ;   2550    __vki_u32 vmode ;
2551    __vki_u32 rotate ;   2551    __vki_u32 rotate ;
2552    __vki_u32 reserved[5] ;   2552    __vki_u32 reserved[5] ;
2553 };   2553 };
2554 struct vki_consolefontdesc {   2554 struct vki_consolefontdesc {
2555    unsigned short charcount ;   2555    unsigned short charcount ;
2556    unsigned short charheight ;   2556    unsigned short charheight ;
2557    char *chardata ;   2557    char *chardata ;
2558 };   2558 };
2559 struct vki_unipair {   2559 struct vki_unipair {
2560    unsigned short unicode ;   2560    unsigned short unicode ;
2561    unsigned short fontpos ;   2561    unsigned short fontpos ;
2562 };   2562 };
2563 struct vki_unimapdesc {   2563 struct vki_unimapdesc {
2564    unsigned short entry_ct ;   2564    unsigned short entry_ct ;
2565    struct vki_unipair *entries ;   2565    struct vki_unipair *entries ;
2566 };   2566 };
2567 struct vki_unimapinit {   2567 struct vki_unimapinit {
2568    unsigned short advised_hashsize ;   2568    unsigned short advised_hashsize ;
2569    unsigned short advised_hashstep ;   2569    unsigned short advised_hashstep ;
2570    unsigned short advised_hashlevel ;   2570    unsigned short advised_hashlevel ;
2571 };   2571 };
2572 struct vki_kbentry {   2572 struct vki_kbentry {
2573    unsigned char kb_table ;   2573    unsigned char kb_table ;
2574    unsigned char kb_index ;   2574    unsigned char kb_index ;
2575    unsigned short kb_value ;   2575    unsigned short kb_value ;
2576 };   2576 };
2577 struct vki_kbsentry {   2577 struct vki_kbsentry {
2578    unsigned char kb_func ;   2578    unsigned char kb_func ;
2579    unsigned char kb_string[512] ;   2579    unsigned char kb_string[512] ;
2580 };   2580 };
2581 struct vki_kbdiacr {   2581 struct vki_kbdiacr {
2582    unsigned char diacr ;   2582    unsigned char diacr ;
2583    unsigned char base ;   2583    unsigned char base ;
2584    unsigned char result ;   2584    unsigned char result ;
2585 };   2585 };
2586 struct vki_kbdiacrs {   2586 struct vki_kbdiacrs {
2587    unsigned int kb_cnt ;   2587    unsigned int kb_cnt ;
2588    struct vki_kbdiacr kbdiacr[256] ;   2588    struct vki_kbdiacr kbdiacr[256] ;
2589 };   2589 };
2590 struct vki_kbkeycode {   2590 struct vki_kbkeycode {
2591    unsigned int scancode ;   2591    unsigned int scancode ;
2592    unsigned int keycode ;   2592    unsigned int keycode ;
2593 };   2593 };
2594 struct vki_kbd_repeat {   2594 struct vki_kbd_repeat {
2595    int delay ;   2595    int delay ;
2596    int period ;   2596    int period ;
2597 };   2597 };
2598 struct vki_console_font_op {   2598 struct vki_console_font_op {
2599    unsigned int op ;   2599    unsigned int op ;
2600    unsigned int flags ;   2600    unsigned int flags ;
2601    unsigned int width ;   2601    unsigned int width ;
2602    unsigned int height ;   2602    unsigned int height ;
2603    unsigned int charcount ;   2603    unsigned int charcount ;
2604    unsigned char *data ;   2604    unsigned char *data ;
2605 };   2605 };
2606 typedef __vki_kernel_uid32_t vki_qid_t;   2606 typedef __vki_kernel_uid32_t vki_qid_t;
2607 struct __anonstruct_93 {   2607 struct __anonstruct_93 {
2608    int  : 0 ;   2608    int  : 0 ;
2609 };   2609 };
2610 struct __anonstruct_94 {   2610 struct __anonstruct_94 {
2611    int  : 0 ;   2611    int  : 0 ;
2612 };   2612 };
2613 enum __anonenum_92 {   2613 enum __anonenum_92 {
2614     VKI_SNDRV_PCM_IOCTL_HW_FREE = 16658,   2614     VKI_SNDRV_PCM_IOCTL_HW_FREE = 16658,
2615     VKI_SNDRV_PCM_IOCTL_HWSYNC = 16674,   2615     VKI_SNDRV_PCM_IOCTL_HWSYNC = 16674,
2616     VKI_SNDRV_PCM_IOCTL_PREPARE = 16704,   2616     VKI_SNDRV_PCM_IOCTL_PREPARE = 16704,
2617     VKI_SNDRV_PCM_IOCTL_RESET = 16705,   2617     VKI_SNDRV_PCM_IOCTL_RESET = 16705,
2618     VKI_SNDRV_PCM_IOCTL_START = 16706,   2618     VKI_SNDRV_PCM_IOCTL_START = 16706,
2619     VKI_SNDRV_PCM_IOCTL_DROP = 16707,   2619     VKI_SNDRV_PCM_IOCTL_DROP = 16707,
2620     VKI_SNDRV_PCM_IOCTL_DRAIN = 16708,   2620     VKI_SNDRV_PCM_IOCTL_DRAIN = 16708,
2621     VKI_SNDRV_PCM_IOCTL_PAUSE = 1074020677,   2621     VKI_SNDRV_PCM_IOCTL_PAUSE = 1074020677,
2622     VKI_SNDRV_PCM_IOCTL_RESUME = 16711,   2622     VKI_SNDRV_PCM_IOCTL_RESUME = 16711,
2623     VKI_SNDRV_PCM_IOCTL_XRUN = 16712,   2623     VKI_SNDRV_PCM_IOCTL_XRUN = 16712,
2624     VKI_SNDRV_PCM_IOCTL_LINK = 1074020704,   2624     VKI_SNDRV_PCM_IOCTL_LINK = 1074020704,
2625     VKI_SNDRV_PCM_IOCTL_UNLINK = 16737   2625     VKI_SNDRV_PCM_IOCTL_UNLINK = 16737
2626 } ;   2626 } ;
2627 enum __anonenum_95 {   2627 enum __anonenum_95 {
2628     VKI_SNDRV_TIMER_IOCTL_START = 21664,   2628     VKI_SNDRV_TIMER_IOCTL_START = 21664,
2629     VKI_SNDRV_TIMER_IOCTL_STOP = 21665,   2629     VKI_SNDRV_TIMER_IOCTL_STOP = 21665,
2630     VKI_SNDRV_TIMER_IOCTL_CONTINUE = 21666,   2630     VKI_SNDRV_TIMER_IOCTL_CONTINUE = 21666,
2631     VKI_SNDRV_TIMER_IOCTL_PAUSE = 21667   2631     VKI_SNDRV_TIMER_IOCTL_PAUSE = 21667
2632 } ;   2632 } ;
2633 struct vki_serial_icounter_struct {   2633 struct vki_serial_icounter_struct {
2634    int cts ;   2634    int cts ;
2635    int dsr ;   2635    int dsr ;
2636    int rng ;   2636    int rng ;
2637    int dcd ;   2637    int dcd ;
2638    int rx ;   2638    int rx ;
2639    int tx ;   2639    int tx ;
2640    int frame ;   2640    int frame ;
2641    int overrun ;   2641    int overrun ;
2642    int parity ;   2642    int parity ;
2643    int brk ;   2643    int brk ;
2644    int buf_overrun ;   2644    int buf_overrun ;
2645    int reserved[9] ;   2645    int reserved[9] ;
2646 };   2646 };
2647 struct vki_vt_mode {   2647 struct vki_vt_mode {
2648    char mode ;   2648    char mode ;
2649    char waitv ;   2649    char waitv ;
2650    short relsig ;   2650    short relsig ;
2651    short acqsig ;   2651    short acqsig ;
2652    short frsig ;   2652    short frsig ;
2653 };   2653 };
2654 struct vki_vt_stat {   2654 struct vki_vt_stat {
2655    unsigned short v_active ;   2655    unsigned short v_active ;
2656    unsigned short v_signal ;   2656    unsigned short v_signal ;
2657    unsigned short v_state ;   2657    unsigned short v_state ;
2658 };   2658 };
2659 struct vki_vt_sizes {   2659 struct vki_vt_sizes {
2660    unsigned short v_rows ;   2660    unsigned short v_rows ;
2661    unsigned short v_cols ;   2661    unsigned short v_cols ;
2662    unsigned short v_scrollsize ;   2662    unsigned short v_scrollsize ;
2663 };   2663 };
2664 struct vki_vt_consize {   2664 struct vki_vt_consize {
2665    unsigned short v_rows ;   2665    unsigned short v_rows ;
2666    unsigned short v_cols ;   2666    unsigned short v_cols ;
2667    unsigned short v_vlin ;   2667    unsigned short v_vlin ;
2668    unsigned short v_clin ;   2668    unsigned short v_clin ;
2669    unsigned short v_vcol ;   2669    unsigned short v_vcol ;
2670    unsigned short v_ccol ;   2670    unsigned short v_ccol ;
2671 };   2671 };
2672 struct vki_usbdevfs_ctrltransfer {   2672 struct vki_usbdevfs_ctrltransfer {
2673    __vki_u8 bRequestType ;   2673    __vki_u8 bRequestType ;
2674    __vki_u8 bRequest ;   2674    __vki_u8 bRequest ;
2675    __vki_u16 wValue ;   2675    __vki_u16 wValue ;
2676    __vki_u16 wIndex ;   2676    __vki_u16 wIndex ;
2677    __vki_u16 wLength ;   2677    __vki_u16 wLength ;
2678    __vki_u32 timeout ;   2678    __vki_u32 timeout ;
2679    void *data ;   2679    void *data ;
2680 };   2680 };
2681 struct vki_usbdevfs_bulktransfer {   2681 struct vki_usbdevfs_bulktransfer {
2682    unsigned int ep ;   2682    unsigned int ep ;
2683    unsigned int len ;   2683    unsigned int len ;
2684    unsigned int timeout ;   2684    unsigned int timeout ;
2685    void *data ;   2685    void *data ;
2686 };   2686 };
2687 struct vki_usbdevfs_getdriver {   2687 struct vki_usbdevfs_getdriver {
2688    unsigned int interface ;   2688    unsigned int interface ;
2689    char driver[256] ;   2689    char driver[256] ;
2690 };   2690 };
2691 struct vki_usbdevfs_connectinfo {   2691 struct vki_usbdevfs_connectinfo {
2692    unsigned int devnum ;   2692    unsigned int devnum ;
2693    unsigned char slow ;   2693    unsigned char slow ;
2694 };   2694 };
2695 struct vki_usbdevfs_iso_packet_desc {   2695 struct vki_usbdevfs_iso_packet_desc {
2696    unsigned int length ;   2696    unsigned int length ;
2697    unsigned int actual_length ;   2697    unsigned int actual_length ;
2698    unsigned int status ;   2698    unsigned int status ;
2699 };   2699 };
2700 struct vki_usbdevfs_urb {   2700 struct vki_usbdevfs_urb {
2701    unsigned char type ;   2701    unsigned char type ;
2702    unsigned char endpoint ;   2702    unsigned char endpoint ;
2703    int status ;   2703    int status ;
2704    unsigned int flags ;   2704    unsigned int flags ;
2705    void *buffer ;   2705    void *buffer ;
2706    int buffer_length ;   2706    int buffer_length ;
2707    int actual_length ;   2707    int actual_length ;
2708    int start_frame ;   2708    int start_frame ;
2709    int number_of_packets ;   2709    int number_of_packets ;
2710    int error_count ;   2710    int error_count ;
2711    unsigned int signr ;   2711    unsigned int signr ;
2712    void *usercontext ;   2712    void *usercontext ;
2713    struct vki_usbdevfs_iso_packet_desc iso_frame_desc[0] ;   2713    struct vki_usbdevfs_iso_packet_desc iso_frame_desc[0] ;
2714 };   2714 };
2715 struct vki_usbdevfs_ioctl {   2715 struct vki_usbdevfs_ioctl {
2716    int ifno ;   2716    int ifno ;
2717    int ioctl_code ;   2717    int ioctl_code ;
2718    void *data ;   2718    void *data ;
2719 };   2719 };
2720 struct vki_usbdevfs_setuppacket {   2720 struct vki_usbdevfs_setuppacket {
2721    __vki_u8 bRequestType ;   2721    __vki_u8 bRequestType ;
2722    __vki_u8 bRequest ;   2722    __vki_u8 bRequest ;
2723    __vki_u16 wValue ;   2723    __vki_u16 wValue ;
2724    __vki_u16 wIndex ;   2724    __vki_u16 wIndex ;
2725    __vki_u16 wLength ;   2725    __vki_u16 wLength ;
2726 };   2726 };
2727 typedef vki_int32_t vki_key_serial_t;   2727 typedef vki_int32_t vki_key_serial_t;
2728 typedef vki_uint32_t vki_key_perm_t;   2728 typedef vki_uint32_t vki_key_perm_t;
2729 struct vki_iw_param {   2729 struct vki_iw_param {
2730    __vki_s32 value ;   2730    __vki_s32 value ;
2731    __vki_u8 fixed ;   2731    __vki_u8 fixed ;
2732    __vki_u8 disabled ;   2732    __vki_u8 disabled ;
2733    __vki_u16 flags ;   2733    __vki_u16 flags ;
2734 };   2734 };
2735 struct vki_iw_point {   2735 struct vki_iw_point {
2736    void *pointer ;   2736    void *pointer ;
2737    __vki_u16 length ;   2737    __vki_u16 length ;
2738    __vki_u16 flags ;   2738    __vki_u16 flags ;
2739 };   2739 };
2740 struct vki_iw_freq {   2740 struct vki_iw_freq {
2741    __vki_s32 m ;   2741    __vki_s32 m ;
2742    __vki_s16 e ;   2742    __vki_s16 e ;
2743    __vki_u8 i ;   2743    __vki_u8 i ;
2744    __vki_u8 flags ;   2744    __vki_u8 flags ;
2745 };   2745 };
2746 struct vki_iw_quality {   2746 struct vki_iw_quality {
2747    __vki_u8 qual ;   2747    __vki_u8 qual ;
2748    __vki_u8 level ;   2748    __vki_u8 level ;
2749    __vki_u8 noise ;   2749    __vki_u8 noise ;
2750    __vki_u8 updated ;   2750    __vki_u8 updated ;
2751 };   2751 };
2752 union vki_iwreq_data {   2752 union vki_iwreq_data {
2753    char name[16] ;   2753    char name[16] ;
2754    struct vki_iw_point essid ;   2754    struct vki_iw_point essid ;
2755    struct vki_iw_param nwid ;   2755    struct vki_iw_param nwid ;
2756    struct vki_iw_freq freq ;   2756    struct vki_iw_freq freq ;
2757    struct vki_iw_param sens ;   2757    struct vki_iw_param sens ;
2758    struct vki_iw_param bitrate ;   2758    struct vki_iw_param bitrate ;
2759    struct vki_iw_param txpower ;   2759    struct vki_iw_param txpower ;
2760    struct vki_iw_param rts ;   2760    struct vki_iw_param rts ;
2761    struct vki_iw_param frag ;   2761    struct vki_iw_param frag ;
2762    __vki_u32 mode ;   2762    __vki_u32 mode ;
2763    struct vki_iw_param retry ;   2763    struct vki_iw_param retry ;
2764    struct vki_iw_point encoding ;   2764    struct vki_iw_point encoding ;
2765    struct vki_iw_param power ;   2765    struct vki_iw_param power ;
2766    struct vki_iw_quality qual ;   2766    struct vki_iw_quality qual ;
2767    struct vki_sockaddr ap_addr ;   2767    struct vki_sockaddr ap_addr ;
2768    struct vki_sockaddr addr ;   2768    struct vki_sockaddr addr ;
2769    struct vki_iw_param param ;   2769    struct vki_iw_param param ;
2770    struct vki_iw_point data ;   2770    struct vki_iw_point data ;
2771 };   2771 };
2772 union __anonunion_ifr_ifrn_96 {   2772 union __anonunion_ifr_ifrn_96 {
2773    char ifrn_name[16] ;   2773    char ifrn_name[16] ;
2774 };   2774 };
2775 struct vki_iwreq {   2775 struct vki_iwreq {
2776    union __anonunion_ifr_ifrn_96 ifr_ifrn ;   2776    union __anonunion_ifr_ifrn_96 ifr_ifrn ;
2777    union vki_iwreq_data u ;   2777    union vki_iwreq_data u ;
2778 };   2778 };
2779 union __anonunion____missing_field_name_97 {   2779 union __anonunion____missing_field_name_97 {
2780    __vki_u64 sample_period ;   2780    __vki_u64 sample_period ;
2781    __vki_u64 sample_freq ;   2781    __vki_u64 sample_freq ;
2782 };   2782 };
2783 union __anonunion____missing_field_name_98 {   2783 union __anonunion____missing_field_name_98 {
2784    __vki_u32 wakeup_events ;   2784    __vki_u32 wakeup_events ;
2785    __vki_u32 wakeup_watermark ;   2785    __vki_u32 wakeup_watermark ;
2786 };   2786 };
2787 union __anonunion____missing_field_name_99 {   2787 union __anonunion____missing_field_name_99 {
2788    __vki_u64 bp_addr ;   2788    __vki_u64 bp_addr ;
2789    __vki_u64 config1 ;   2789    __vki_u64 config1 ;
2790 };   2790 };
2791 union __anonunion____missing_field_name_100 {   2791 union __anonunion____missing_field_name_100 {
2792    __vki_u64 bp_len ;   2792    __vki_u64 bp_len ;
2793    __vki_u64 config2 ;   2793    __vki_u64 config2 ;
2794 };   2794 };
2795 struct vki_perf_event_attr {   2795 struct vki_perf_event_attr {
2796    __vki_u32 type ;   2796    __vki_u32 type ;
2797    __vki_u32 size ;   2797    __vki_u32 size ;
2798    __vki_u64 config ;   2798    __vki_u64 config ;
2799    union __anonunion____missing_field_name_97 __annonCompField1 ;   2799    union __anonunion____missing_field_name_97 __annonCompField1 ;
2800    __vki_u64 sample_type ;   2800    __vki_u64 sample_type ;
2801    __vki_u64 read_format ;   2801    __vki_u64 read_format ;
2802    __vki_u64 disabled : 1 ;   2802    __vki_u64 disabled : 1 ;
2803    __vki_u64 inherit : 1 ;   2803    __vki_u64 inherit : 1 ;
2804    __vki_u64 pinned : 1 ;   2804    __vki_u64 pinned : 1 ;
2805    __vki_u64 exclusive : 1 ;   2805    __vki_u64 exclusive : 1 ;
2806    __vki_u64 exclude_user : 1 ;   2806    __vki_u64 exclude_user : 1 ;
2807    __vki_u64 exclude_kernel : 1 ;   2807    __vki_u64 exclude_kernel : 1 ;
2808    __vki_u64 exclude_hv : 1 ;   2808    __vki_u64 exclude_hv : 1 ;
2809    __vki_u64 exclude_idle : 1 ;   2809    __vki_u64 exclude_idle : 1 ;
2810    __vki_u64 mmap : 1 ;   2810    __vki_u64 mmap : 1 ;
2811    __vki_u64 comm : 1 ;   2811    __vki_u64 comm : 1 ;
2812    __vki_u64 freq : 1 ;   2812    __vki_u64 freq : 1 ;
2813    __vki_u64 inherit_stat : 1 ;   2813    __vki_u64 inherit_stat : 1 ;
2814    __vki_u64 enable_on_exec : 1 ;   2814    __vki_u64 enable_on_exec : 1 ;
2815    __vki_u64 task : 1 ;   2815    __vki_u64 task : 1 ;
2816    __vki_u64 watermark : 1 ;   2816    __vki_u64 watermark : 1 ;
2817    __vki_u64 precise_ip : 2 ;   2817    __vki_u64 precise_ip : 2 ;
2818    __vki_u64 mmap_data : 1 ;   2818    __vki_u64 mmap_data : 1 ;
2819    __vki_u64 sample_id_all : 1 ;   2819    __vki_u64 sample_id_all : 1 ;
2820    __vki_u64 __reserved_1 : 45 ;   2820    __vki_u64 __reserved_1 : 45 ;
2821    union __anonunion____missing_field_name_98 __annonCompField2 ;   2821    union __anonunion____missing_field_name_98 __annonCompField2 ;
2822    __vki_u32 bp_type ;   2822    __vki_u32 bp_type ;
2823    union __anonunion____missing_field_name_99 __annonCompField3 ;   2823    union __anonunion____missing_field_name_99 __annonCompField3 ;
2824    union __anonunion____missing_field_name_100 __annonCompField4 ;   2824    union __anonunion____missing_field_name_100 __annonCompField4 ;
2825 };   2825 };
2826 struct vki_getcpu_cache {   2826 struct vki_getcpu_cache {
2827    unsigned long blob[128U / sizeof(long )] ;   2827    unsigned long blob[128U / sizeof(long )] ;
2828 };   2828 };
2829 typedef void (*vg_atfork_t)(ThreadId  );   2829 typedef void (*vg_atfork_t)(ThreadId  );
2830 enum __anonenum_VgMsgKind_101 {   2830 enum __anonenum_VgMsgKind_101 {
2831     Vg_FailMsg = 0,   2831     Vg_FailMsg = 0,
2832     Vg_UserMsg = 1,   2832     Vg_UserMsg = 1,
2833     Vg_DebugMsg = 2,   2833     Vg_DebugMsg = 2,
2834     Vg_ClientMsg = 3   2834     Vg_ClientMsg = 3
2835 } ;   2835 } ;
2836 typedef enum __anonenum_VgMsgKind_101 VgMsgKind;   2836 typedef enum __anonenum_VgMsgKind_101 VgMsgKind;
2837 struct __anonstruct_OutputSink_102 {   2837 struct __anonstruct_OutputSink_102 {
2838    Int fd ;   2838    Int fd ;
2839    Bool is_socket ;   2839    Bool is_socket ;
2840 };   2840 };
2841 typedef struct __anonstruct_OutputSink_102 OutputSink;   2841 typedef struct __anonstruct_OutputSink_102 OutputSink;
2842 typedef Int ArenaId;   2842 typedef Int ArenaId;
2843 struct vg_mallinfo {   2843 struct vg_mallinfo {
2844    int arena ;   2844    int arena ;
2845    int ordblks ;   2845    int ordblks ;
2846    int smblks ;   2846    int smblks ;
2847    int hblks ;   2847    int hblks ;
2848    int hblkhd ;   2848    int hblkhd ;
2849    int usmblks ;   2849    int usmblks ;
2850    int fsmblks ;   2850    int fsmblks ;
2851    int uordblks ;   2851    int uordblks ;
2852    int fordblks ;   2852    int fordblks ;
2853    int keepcost ;   2853    int keepcost ;
2854 };   2854 };
2855 enum __anonenum_PointKind_103 {   2855 enum __anonenum_PointKind_103 {
2856     software_breakpoint = 0,   2856     software_breakpoint = 0,
2857     hardware_breakpoint = 1,   2857     hardware_breakpoint = 1,
2858     write_watchpoint = 2,   2858     write_watchpoint = 2,
2859     read_watchpoint = 3,   2859     read_watchpoint = 3,
2860     access_watchpoint = 4   2860     access_watchpoint = 4
2861 } ;   2861 } ;
2862 typedef enum __anonenum_PointKind_103 PointKind;   2862 typedef enum __anonenum_PointKind_103 PointKind;
2863 enum __anonenum_kwd_report_error_104 {   2863 enum __anonenum_kwd_report_error_104 {
2864     kwd_report_none = 0,   2864     kwd_report_none = 0,
2865     kwd_report_all = 1,   2865     kwd_report_all = 1,
2866     kwd_report_duplicated_matches = 2   2866     kwd_report_duplicated_matches = 2
2867 } ;   2867 } ;
2868 typedef enum __anonenum_kwd_report_error_104 kwd_report_error;   2868 typedef enum __anonenum_kwd_report_error_104 kwd_report_error;
2869 enum __anonenum_FinishReason_105 {   2869 enum __anonenum_FinishReason_105 {
2870     orderly_finish = 0,   2870     orderly_finish = 0,
2871     reset_after_error = 1,   2871     reset_after_error = 1,
2872     reset_after_fork = 2   2872     reset_after_fork = 2
2873 } ;   2873 } ;
2874 typedef enum __anonenum_FinishReason_105 FinishReason;   2874 typedef enum __anonenum_FinishReason_105 FinishReason;
2875 struct __anonstruct_VgdbShared32_106 {   2875 struct __anonstruct_VgdbShared32_106 {
2876    int vgdb_pid ;   2876    int vgdb_pid ;
2877    int volatile   written_by_vgdb ;   2877    int volatile   written_by_vgdb ;
2878    int volatile   seen_by_valgrind ;   2878    int volatile   seen_by_valgrind ;
2879    Addr32 invoke_gdbserver ;   2879    Addr32 invoke_gdbserver ;
2880    Addr32 threads ;   2880    Addr32 threads ;
2881    int sizeof_ThreadState ;   2881    int sizeof_ThreadState ;
2882    int offset_status ;   2882    int offset_status ;
2883    int offset_lwpid ;   2883    int offset_lwpid ;
2884 };   2884 };
2885 typedef struct __anonstruct_VgdbShared32_106 VgdbShared32;   2885 typedef struct __anonstruct_VgdbShared32_106 VgdbShared32;
2886 struct __anonstruct_VgdbShared64_107 {   2886 struct __anonstruct_VgdbShared64_107 {
2887    int vgdb_pid ;   2887    int vgdb_pid ;
2888    int volatile   written_by_vgdb ;   2888    int volatile   written_by_vgdb ;
2889    int volatile   seen_by_valgrind ;   2889    int volatile   seen_by_valgrind ;
2890    Addr64 invoke_gdbserver ;   2890    Addr64 invoke_gdbserver ;
2891    Addr64 threads ;   2891    Addr64 threads ;
2892    int sizeof_ThreadState ;   2892    int sizeof_ThreadState ;
2893    int offset_status ;   2893    int offset_status ;
2894    int offset_lwpid ;   2894    int offset_lwpid ;
2895 };   2895 };
2896 typedef struct __anonstruct_VgdbShared64_107 VgdbShared64;   2896 typedef struct __anonstruct_VgdbShared64_107 VgdbShared64;
2897 typedef VgdbShared32 VgdbShared;   2897 typedef VgdbShared32 VgdbShared;
2898 enum __anonenum_VgVgdb_108 {   2898 enum __anonenum_VgVgdb_108 {
2899     Vg_VgdbNo = 0,   2899     Vg_VgdbNo = 0,
2900     Vg_VgdbYes = 1,   2900     Vg_VgdbYes = 1,
2901     Vg_VgdbFull = 2   2901     Vg_VgdbFull = 2
2902 } ;   2902 } ;
2903 typedef enum __anonenum_VgVgdb_108 VgVgdb;   2903 typedef enum __anonenum_VgVgdb_108 VgVgdb;
2904 enum __anonenum_VgSmc_109 {   2904 enum __anonenum_VgSmc_109 {
2905     Vg_SmcNone = 0,   2905     Vg_SmcNone = 0,
2906     Vg_SmcStack = 1,   2906     Vg_SmcStack = 1,
2907     Vg_SmcAll = 2,   2907     Vg_SmcAll = 2,
2908     Vg_SmcAllNonFile = 3   2908     Vg_SmcAllNonFile = 3
2909 } ;   2909 } ;
2910 typedef enum __anonenum_VgSmc_109 VgSmc;   2910 typedef enum __anonenum_VgSmc_109 VgSmc;
2911 typedef int __jmp_buf[6];   2911 typedef int __jmp_buf[6];
2912 typedef int __sig_atomic_t;   2912 typedef int __sig_atomic_t;
2913 struct __anonstruct___sigset_t_110 {   2913 struct __anonstruct___sigset_t_110 {
2914    unsigned long __val[1024U / (8U * sizeof(unsigned long ))] ;   2914    unsigned long __val[1024U / (8U * sizeof(unsigned long ))] ;
2915 };   2915 };
2916 typedef struct __anonstruct___sigset_t_110 __sigset_t;   2916 typedef struct __anonstruct___sigset_t_110 __sigset_t;
2917 struct __jmp_buf_tag {   2917 struct __jmp_buf_tag {
2918    __jmp_buf __jmpbuf ;   2918    __jmp_buf __jmpbuf ;
2919    int __mask_was_saved ;   2919    int __mask_was_saved ;
2920    __sigset_t __saved_mask ;   2920    __sigset_t __saved_mask ;
2921 };   2921 };
2922 typedef struct __jmp_buf_tag jmp_buf[1];   2922 typedef struct __jmp_buf_tag jmp_buf[1];
2923 typedef struct __jmp_buf_tag sigjmp_buf[1];   2923 typedef struct __jmp_buf_tag sigjmp_buf[1];
2924 enum ThreadStatus {   2924 enum ThreadStatus {
2925     VgTs_Empty = 0,   2925     VgTs_Empty = 0,
2926     VgTs_Init = 1,   2926     VgTs_Init = 1,
2927     VgTs_Runnable = 2,   2927     VgTs_Runnable = 2,
2928     VgTs_WaitSys = 3,   2928     VgTs_WaitSys = 3,
2929     VgTs_Yielding = 4,   2929     VgTs_Yielding = 4,
2930     VgTs_Zombie = 5   2930     VgTs_Zombie = 5
2931 } ;   2931 } ;
2932 typedef enum ThreadStatus ThreadStatus;   2932 typedef enum ThreadStatus ThreadStatus;
2933 enum __anonenum_VgSchedReturnCode_111 {   2933 enum __anonenum_VgSchedReturnCode_111 {
2934     VgSrc_None = 0,   2934     VgSrc_None = 0,
2935     VgSrc_ExitThread = 1,   2935     VgSrc_ExitThread = 1,
2936     VgSrc_ExitProcess = 2,   2936     VgSrc_ExitProcess = 2,
2937     VgSrc_FatalSig = 3   2937     VgSrc_FatalSig = 3
2938 } ;   2938 } ;
2939 typedef enum __anonenum_VgSchedReturnCode_111 VgSchedReturnCode;   2939 typedef enum __anonenum_VgSchedReturnCode_111 VgSchedReturnCode;
2940 typedef VexGuestX86State VexGuestArchState;   2940 typedef VexGuestX86State VexGuestArchState;
2941 struct SyscallStatus;   2941 struct SyscallStatus;
2942 struct SyscallStatus;   2942 struct SyscallStatus;
2943 struct SyscallArgs;   2943 struct SyscallArgs;
2944 struct SyscallArgs;   2944 struct SyscallArgs;
2945 struct __anonstruct_ThreadArchState_112 {   2945 struct __anonstruct_ThreadArchState_112 {
2946    VexGuestArchState vex  __attribute__((__aligned__(16))) ;   2946    VexGuestArchState vex  __attribute__((__aligned__(16))) ;
2947    VexGuestArchState vex_shadow1  __attribute__((__aligned__(16))) ;   2947    VexGuestArchState vex_shadow1  __attribute__((__aligned__(16))) ;
2948    VexGuestArchState vex_shadow2  __attribute__((__aligned__(16))) ;   2948    VexGuestArchState vex_shadow2  __attribute__((__aligned__(16))) ;
2949    UChar vex_spill[4096]  __attribute__((__aligned__(16))) ;   2949    UChar vex_spill[4096]  __attribute__((__aligned__(16))) ;
2950 };   2950 };
2951 typedef struct __anonstruct_ThreadArchState_112 ThreadArchState;   2951 typedef struct __anonstruct_ThreadArchState_112 ThreadArchState;
2952 struct __anonstruct_ThreadOSstate_113 {   2952 struct __anonstruct_ThreadOSstate_113 {
2953    Int lwpid ;   2953    Int lwpid ;
2954    Int threadgroup ;   2954    Int threadgroup ;
2955    ThreadId parent ;   2955    ThreadId parent ;
2956    Addr valgrind_stack_base ;   2956    Addr valgrind_stack_base ;
2957    Addr valgrind_stack_init_SP ;   2957    Addr valgrind_stack_init_SP ;
2958    Word exitcode ;   2958    Word exitcode ;
2959    Int fatalsig ;   2959    Int fatalsig ;
2960 };   2960 };
2961 typedef struct __anonstruct_ThreadOSstate_113 ThreadOSstate;   2961 typedef struct __anonstruct_ThreadOSstate_113 ThreadOSstate;
2962 struct SigQueue;   2962 struct SigQueue;
2963 struct __anonstruct_ThreadState_114 {   2963 struct __anonstruct_ThreadState_114 {
2964    ThreadId tid ;   2964    ThreadId tid ;
2965    ThreadStatus status ;   2965    ThreadStatus status ;
2966    VgSchedReturnCode exitreason ;   2966    VgSchedReturnCode exitreason ;
2967    ThreadArchState arch ;   2967    ThreadArchState arch ;
2968    vki_sigset_t sig_mask ;   2968    vki_sigset_t sig_mask ;
2969    vki_sigset_t tmp_sig_mask ;   2969    vki_sigset_t tmp_sig_mask ;
2970    struct SigQueue *sig_queue ;   2970    struct SigQueue *sig_queue ;
2971    SizeT client_stack_szB ;   2971    SizeT client_stack_szB ;
2972    Addr client_stack_highest_word ;   2972    Addr client_stack_highest_word ;
2973    vki_stack_t altstack ;   2973    vki_stack_t altstack ;
2974    ThreadOSstate os_state ;   2974    ThreadOSstate os_state ;
2975    Bool sched_jmpbuf_valid ;   2975    Bool sched_jmpbuf_valid ;
2976    jmp_buf sched_jmpbuf ;   2976    jmp_buf sched_jmpbuf ;
2977 };   2977 };
2978 typedef struct __anonstruct_ThreadState_114 ThreadState;   2978 typedef struct __anonstruct_ThreadState_114 ThreadState;
2979 struct __anonstruct_FastCacheEntry_115 {   2979 struct __anonstruct_FastCacheEntry_115 {
2980    Addr guest ;   2980    Addr guest ;
2981    Addr host ;   2981    Addr host ;
2982 };   2982 };
2983 typedef struct __anonstruct_FastCacheEntry_115 FastCacheEntry;   2983 typedef struct __anonstruct_FastCacheEntry_115 FastCacheEntry;
2984 struct _BBProfEntry {   2984 struct _BBProfEntry {
2985    Addr64 addr ;   2985    Addr64 addr ;
2986    ULong score ;   2986    ULong score ;
2987 };   2987 };
2988 typedef struct _BBProfEntry BBProfEntry;   2988 typedef struct _BBProfEntry BBProfEntry;
2989 struct _VgHashNode {   2989 struct _VgHashNode {
2990    struct _VgHashNode *next ;   2990    struct _VgHashNode *next ;
2991    UWord key ;   2991    UWord key ;
2992 };   2992 };
2993 typedef struct _VgHashNode VgHashNode;   2993 typedef struct _VgHashNode VgHashNode;
2994 struct _VgHashTable;   2994 struct _VgHashTable;
2995 typedef struct _VgHashTable *VgHashTable;   2995 typedef struct _VgHashTable *VgHashTable;
2996 enum __anonenum_Vg_FnNameKind_116 {   2996 enum __anonenum_Vg_FnNameKind_116 {
2997     Vg_FnNameNormal = 0,   2997     Vg_FnNameNormal = 0,
2998     Vg_FnNameMain = 1,   2998     Vg_FnNameMain = 1,
2999     Vg_FnNameBelowMain = 2   2999     Vg_FnNameBelowMain = 2
3000 } ;   3000 } ;
3001 typedef enum __anonenum_Vg_FnNameKind_116 Vg_FnNameKind;   3001 typedef enum __anonenum_Vg_FnNameKind_116 Vg_FnNameKind;
3002 struct __anonstruct_StackBlock_117 {   3002 struct __anonstruct_StackBlock_117 {
3003    PtrdiffT base ;   3003    PtrdiffT base ;
3004    SizeT szB ;   3004    SizeT szB ;
3005    Bool spRel ;   3005    Bool spRel ;
3006    Bool isVec ;   3006    Bool isVec ;
3007    HChar name[16] ;   3007    HChar name[16] ;
3008 };   3008 };
3009 typedef struct __anonstruct_StackBlock_117 StackBlock;   3009 typedef struct __anonstruct_StackBlock_117 StackBlock;
3010 struct __anonstruct_GlobalBlock_118 {   3010 struct __anonstruct_GlobalBlock_118 {
3011    Addr addr ;   3011    Addr addr ;
3012    SizeT szB ;   3012    SizeT szB ;
3013    Bool isVec ;   3013    Bool isVec ;
3014    HChar name[16] ;   3014    HChar name[16] ;
3015    HChar soname[16] ;   3015    HChar soname[16] ;
3016 };   3016 };
3017 typedef struct __anonstruct_GlobalBlock_118 GlobalBlock;   3017 typedef struct __anonstruct_GlobalBlock_118 GlobalBlock;
3018 struct _DebugInfo;   3018 struct _DebugInfo;
3019 typedef struct _DebugInfo DebugInfo;   3019 typedef struct _DebugInfo DebugInfo;
3020 enum __anonenum_VgSectKind_119 {   3020 enum __anonenum_VgSectKind_119 {
3021     Vg_SectUnknown = 0,   3021     Vg_SectUnknown = 0,
3022     Vg_SectText = 1,   3022     Vg_SectText = 1,
3023     Vg_SectData = 2,   3023     Vg_SectData = 2,
3024     Vg_SectBSS = 3,   3024     Vg_SectBSS = 3,
3025     Vg_SectGOT = 4,   3025     Vg_SectGOT = 4,
3026     Vg_SectPLT = 5,   3026     Vg_SectPLT = 5,
3027     Vg_SectGOTPLT = 6,   3027     Vg_SectGOTPLT = 6,
3028     Vg_SectOPD = 7   3028     Vg_SectOPD = 7
3029 } ;   3029 } ;
3030 typedef enum __anonenum_VgSectKind_119 VgSectKind;   3030 typedef enum __anonenum_VgSectKind_119 VgSectKind;
3031 struct _XArray;   3031 struct _XArray;
3032 typedef struct _XArray XArray;   3032 typedef struct _XArray XArray;
3033 struct _ExeContext;   3033 struct _ExeContext;
3034 typedef struct _ExeContext ExeContext;   3034 typedef struct _ExeContext ExeContext;
3035 enum __anonenum_VgRes_120 {   3035 enum __anonenum_VgRes_120 {
3036     Vg_LowRes = 0,   3036     Vg_LowRes = 0,
3037     Vg_MedRes = 1,   3037     Vg_MedRes = 1,
3038     Vg_HighRes = 2   3038     Vg_HighRes = 2
3039 } ;   3039 } ;
3040 typedef enum __anonenum_VgRes_120 VgRes;   3040 typedef enum __anonenum_VgRes_120 VgRes;
3041 typedef Int ErrorKind;   3041 typedef Int ErrorKind;
3042 struct _Error;   3042 struct _Error;
3043 typedef struct _Error Error;   3043 typedef struct _Error Error;
3044 typedef Int SuppKind;   3044 typedef Int SuppKind;
3045 struct _Supp;   3045 struct _Supp;
3046 typedef struct _Supp Supp;   3046 typedef struct _Supp Supp;
3047 enum __anonenum_CoreErrorKind_121 {   3047 enum __anonenum_CoreErrorKind_121 {
3048     ThreadErr = -1   3048     ThreadErr = -1
3049 } ;   3049 } ;
3050 typedef enum __anonenum_CoreErrorKind_121 CoreErrorKind;   3050 typedef enum __anonenum_CoreErrorKind_121 CoreErrorKind;
3051 struct vg_stat {   3051 struct vg_stat {
3052    ULong dev ;   3052    ULong dev ;
3053    ULong ino ;   3053    ULong ino ;
3054    ULong nlink ;   3054    ULong nlink ;
3055    UInt mode ;   3055    UInt mode ;
3056    UInt uid ;   3056    UInt uid ;
3057    UInt gid ;   3057    UInt gid ;
3058    ULong rdev ;   3058    ULong rdev ;
3059    Long size ;   3059    Long size ;
3060    ULong blksize ;   3060    ULong blksize ;
3061    ULong blocks ;   3061    ULong blocks ;
3062    ULong atime ;   3062    ULong atime ;
3063    ULong atime_nsec ;   3063    ULong atime_nsec ;
3064    ULong mtime ;   3064    ULong mtime ;
3065    ULong mtime_nsec ;   3065    ULong mtime_nsec ;
3066    ULong ctime ;   3066    ULong ctime ;
3067    ULong ctime_nsec ;   3067    ULong ctime_nsec ;
3068 };   3068 };
3069 struct __anonstruct_VgCallbackClosure_122 {   3069 struct __anonstruct_VgCallbackClosure_122 {
3070    Addr64 nraddr ;   3070    Addr64 nraddr ;
3071    Addr64 readdr ;   3071    Addr64 readdr ;
3072    ThreadId tid ;   3072    ThreadId tid ;
3073 };   3073 };
3074 typedef struct __anonstruct_VgCallbackClosure_122 VgCallbackClosure;   3074 typedef struct __anonstruct_VgCallbackClosure_122 VgCallbackClosure;
3075 enum __anonenum_CorePart_123 {   3075 enum __anonenum_CorePart_123 {
3076     Vg_CoreStartup = 1,   3076     Vg_CoreStartup = 1,
3077     Vg_CoreSignal = 2,   3077     Vg_CoreSignal = 2,
3078     Vg_CoreSysCall = 3,   3078     Vg_CoreSysCall = 3,
3079     Vg_CoreSysCallArgInMem = 4,   3079     Vg_CoreSysCallArgInMem = 4,
3080     Vg_CoreTranslate = 5,   3080     Vg_CoreTranslate = 5,
3081     Vg_CoreClientReq = 6   3081     Vg_CoreClientReq = 6
3082 } ;   3082 } ;
3083 typedef enum __anonenum_CorePart_123 CorePart;   3083 typedef enum __anonenum_CorePart_123 CorePart;
3084 struct __anonstruct_VgDetails_124 {   3084 struct __anonstruct_VgDetails_124 {
3085    Char *name ;   3085    Char *name ;
3086    Char *version ;   3086    Char *version ;
3087    Char *description ;   3087    Char *description ;
3088    Char *copyright_author ;   3088    Char *copyright_author ;
3089    Char *bug_reports_to ;   3089    Char *bug_reports_to ;
3090    UInt avg_translation_sizeB ;   3090    UInt avg_translation_sizeB ;
3091 };   3091 };
3092 typedef struct __anonstruct_VgDetails_124 VgDetails;   3092 typedef struct __anonstruct_VgDetails_124 VgDetails;
3093 struct __anonstruct_VgNeeds_125 {   3093 struct __anonstruct_VgNeeds_125 {
3094    Bool libc_freeres ;   3094    Bool libc_freeres ;
3095    Bool core_errors ;   3095    Bool core_errors ;
3096    Bool tool_errors ;   3096    Bool tool_errors ;
3097    Bool superblock_discards ;   3097    Bool superblock_discards ;
3098    Bool command_line_options ;   3098    Bool command_line_options ;
3099    Bool client_requests ;   3099    Bool client_requests ;
3100    Bool syscall_wrapper ;   3100    Bool syscall_wrapper ;
3101    Bool sanity_checks ;   3101    Bool sanity_checks ;
3102    Bool var_info ;   3102    Bool var_info ;
3103    Bool malloc_replacement ;   3103    Bool malloc_replacement ;
3104    Bool xml_output ;   3104    Bool xml_output ;
3105    Bool final_IR_tidy_pass ;   3105    Bool final_IR_tidy_pass ;
3106 };   3106 };
3107 typedef struct __anonstruct_VgNeeds_125 VgNeeds;   3107 typedef struct __anonstruct_VgNeeds_125 VgNeeds;
3108 struct __anonstruct_VgToolInterface_126 {   3108 struct __anonstruct_VgToolInterface_126 {
3109    void (*tool_pre_clo_init)(void) ;   3109    void (*tool_pre_clo_init)(void) ;
3110    void (*tool_post_clo_init)(void) ;   3110    void (*tool_post_clo_init)(void) ;
3111    IRSB *(*tool_instrument)(VgCallbackClosure * , IRSB * , VexGuestLayout * ,   3111    IRSB *(*tool_instrument)(VgCallbackClosure * , IRSB * , VexGuestLayout * ,
3112                             VexGuestExtents * , IRType  , IRType  ) ;   3112                             VexGuestExtents * , IRType  , IRType  ) ;
3113    void (*tool_fini)(Int  ) ;   3113    void (*tool_fini)(Int  ) ;
3114    Bool (*tool_eq_Error)(VgRes  , Error * , Error * ) ;   3114    Bool (*tool_eq_Error)(VgRes  , Error * , Error * ) ;
3115    void (*tool_before_pp_Error)(Error * ) ;   3115    void (*tool_before_pp_Error)(Error * ) ;
3116    void (*tool_pp_Error)(Error * ) ;   3116    void (*tool_pp_Error)(Error * ) ;
3117    Bool tool_show_ThreadIDs_for_errors ;   3117    Bool tool_show_ThreadIDs_for_errors ;
3118    UInt (*tool_update_extra)(Error * ) ;   3118    UInt (*tool_update_extra)(Error * ) ;
3119    Bool (*tool_recognised_suppression)(Char * , Supp * ) ;   3119    Bool (*tool_recognised_suppression)(Char * , Supp * ) ;
3120    Bool (*tool_read_extra_suppression_info)(Int  , Char ** , SizeT * , Supp * ) ;   3120    Bool (*tool_read_extra_suppression_info)(Int  , Char ** , SizeT * , Supp * ) ;
3121    Bool (*tool_error_matches_suppression)(Error * , Supp * ) ;   3121    Bool (*tool_error_matches_suppression)(Error * , Supp * ) ;
3122    Char *(*tool_get_error_name)(Error * ) ;   3122    Char *(*tool_get_error_name)(Error * ) ;
3123    Bool (*tool_get_extra_suppression_info)(Error * , Char * , Int  ) ;   3123    Bool (*tool_get_extra_suppression_info)(Error * , Char * , Int  ) ;
3124    void (*tool_discard_superblock_info)(Addr64  , VexGuestExtents  ) ;   3124    void (*tool_discard_superblock_info)(Addr64  , VexGuestExtents  ) ;
3125    Bool (*tool_process_cmd_line_option)(Char * ) ;   3125    Bool (*tool_process_cmd_line_option)(Char * ) ;
3126    void (*tool_print_usage)(void) ;   3126    void (*tool_print_usage)(void) ;
3127    void (*tool_print_debug_usage)(void) ;   3127    void (*tool_print_debug_usage)(void) ;
3128    Bool (*tool_handle_client_request)(ThreadId  , UWord * , UWord * ) ;   3128    Bool (*tool_handle_client_request)(ThreadId  , UWord * , UWord * ) ;
3129    void (*tool_pre_syscall)(ThreadId  , UInt  , UWord * , UInt  ) ;   3129    void (*tool_pre_syscall)(ThreadId  , UInt  , UWord * , UInt  ) ;
3130    void (*tool_post_syscall)(ThreadId  , UInt  , UWord * , UInt  , SysRes  ) ;   3130    void (*tool_post_syscall)(ThreadId  , UInt  , UWord * , UInt  , SysRes  ) ;
3131    Bool (*tool_cheap_sanity_check)(void) ;   3131    Bool (*tool_cheap_sanity_check)(void) ;
3132    Bool (*tool_expensive_sanity_check)(void) ;   3132    Bool (*tool_expensive_sanity_check)(void) ;
3133    void *(*tool_malloc)(ThreadId  , SizeT  ) ;   3133    void *(*tool_malloc)(ThreadId  , SizeT  ) ;
3134    void *(*tool___builtin_new)(ThreadId  , SizeT  ) ;   3134    void *(*tool___builtin_new)(ThreadId  , SizeT  ) ;
3135    void *(*tool___builtin_vec_new)(ThreadId  , SizeT  ) ;   3135    void *(*tool___builtin_vec_new)(ThreadId  , SizeT  ) ;
3136    void *(*tool_memalign)(ThreadId  , SizeT  , SizeT  ) ;   3136    void *(*tool_memalign)(ThreadId  , SizeT  , SizeT  ) ;
3137    void *(*tool_calloc)(ThreadId  , SizeT  , SizeT  ) ;   3137    void *(*tool_calloc)(ThreadId  , SizeT  , SizeT  ) ;
3138    void (*tool_free)(ThreadId  , void * ) ;   3138    void (*tool_free)(ThreadId  , void * ) ;
3139    void (*tool___builtin_delete)(ThreadId  , void * ) ;   3139    void (*tool___builtin_delete)(ThreadId  , void * ) ;
3140    void (*tool___builtin_vec_delete)(ThreadId  , void * ) ;   3140    void (*tool___builtin_vec_delete)(ThreadId  , void * ) ;
3141    void *(*tool_realloc)(ThreadId  , void * , SizeT  ) ;   3141    void *(*tool_realloc)(ThreadId  , void * , SizeT  ) ;
3142    SizeT (*tool_malloc_usable_size)(ThreadId  , void * ) ;   3142    SizeT (*tool_malloc_usable_size)(ThreadId  , void * ) ;
3143    SizeT tool_client_redzone_szB ;   3143    SizeT tool_client_redzone_szB ;
3144    IRSB *(*tool_final_IR_tidy_pass)(IRSB * ) ;   3144    IRSB *(*tool_final_IR_tidy_pass)(IRSB * ) ;
3145    void (*track_new_mem_startup)(Addr  , SizeT  , Bool  , Bool  , Bool  ,   3145    void (*track_new_mem_startup)(Addr  , SizeT  , Bool  , Bool  , Bool  ,
3146                                  ULong  ) ;   3146                                  ULong  ) ;
3147    void (*track_new_mem_stack_signal)(Addr  , SizeT  , ThreadId  ) ;   3147    void (*track_new_mem_stack_signal)(Addr  , SizeT  , ThreadId  ) ;
3148    void (*track_new_mem_brk)(Addr  , SizeT  , ThreadId  ) ;   3148    void (*track_new_mem_brk)(Addr  , SizeT  , ThreadId  ) ;
3149    void (*track_new_mem_mmap)(Addr  , SizeT  , Bool  , Bool  , Bool  , ULong  ) ;   3149    void (*track_new_mem_mmap)(Addr  , SizeT  , Bool  , Bool  , Bool  , ULong  ) ;
3150    void (*track_copy_mem_remap)(Addr src , Addr dst , SizeT  ) ;   3150    void (*track_copy_mem_remap)(Addr src , Addr dst , SizeT  ) ;
3151    void (*track_change_mem_mprotect)(Addr  , SizeT  , Bool  , Bool  , Bool  ) ;   3151    void (*track_change_mem_mprotect)(Addr  , SizeT  , Bool  , Bool  , Bool  ) ;
3152    void (*track_die_mem_stack_signal)(Addr  , SizeT  ) ;   3152    void (*track_die_mem_stack_signal)(Addr  , SizeT  ) ;
3153    void (*track_die_mem_brk)(Addr  , SizeT  ) ;   3153    void (*track_die_mem_brk)(Addr  , SizeT  ) ;
3154    void (*track_die_mem_munmap)(Addr  , SizeT  ) ;   3154    void (*track_die_mem_munmap)(Addr  , SizeT  ) ;
3155    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_4_w_ECU))(Addr  ,   3155    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_4_w_ECU))(Addr  ,
3156                                                                           UInt  ) ;   3156                                                                           UInt  ) ;
3157    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_8_w_ECU))(Addr  ,   3157    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_8_w_ECU))(Addr  ,
3158                                                                           UInt  ) ;   3158                                                                           UInt  ) ;
3159    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_12_w_ECU))(Addr  ,   3159    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_12_w_ECU))(Addr  ,
3160                                                                            UInt  ) ;   3160                                                                            UInt  ) ;
3161    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_16_w_ECU))(Addr  ,   3161    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_16_w_ECU))(Addr  ,
3162                                                                            UInt  ) ;   3162                                                                            UInt  ) ;
3163    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_32_w_ECU))(Addr  ,   3163    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_32_w_ECU))(Addr  ,
3164                                                                            UInt  ) ;   3164                                                                            UInt  ) ;
3165    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_112_w_ECU))(Addr  ,   3165    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_112_w_ECU))(Addr  ,
3166                                                                             UInt  ) ;   3166                                                                             UInt  ) ;
3167    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_128_w_ECU))(Addr  ,   3167    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_128_w_ECU))(Addr  ,
3168                                                                             UInt  ) ;   3168                                                                             UInt  ) ;
3169    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_144_w_ECU))(Addr  ,   3169    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_144_w_ECU))(Addr  ,
3170                                                                             UInt  ) ;   3170                                                                             UInt  ) ;
3171    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_160_w_ECU))(Addr  ,   3171    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_160_w_ECU))(Addr  ,
3172                                                                             UInt  ) ;   3172                                                                             UInt  ) ;
3173    void (*track_new_mem_stack_w_ECU)(Addr  , SizeT  , UInt  ) ;   3173    void (*track_new_mem_stack_w_ECU)(Addr  , SizeT  , UInt  ) ;
3174    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_4))(Addr  ) ;   3174    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_4))(Addr  ) ;
3175    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_8))(Addr  ) ;   3175    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_8))(Addr  ) ;
3176    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_12))(Addr  ) ;   3176    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_12))(Addr  ) ;
3177    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_16))(Addr  ) ;   3177    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_16))(Addr  ) ;
3178    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_32))(Addr  ) ;   3178    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_32))(Addr  ) ;
3179    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_112))(Addr  ) ;   3179    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_112))(Addr  ) ;
3180    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_128))(Addr  ) ;   3180    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_128))(Addr  ) ;
3181    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_144))(Addr  ) ;   3181    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_144))(Addr  ) ;
3182    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_160))(Addr  ) ;   3182    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_160))(Addr  ) ;
3183    void (*track_new_mem_stack)(Addr  , SizeT  ) ;   3183    void (*track_new_mem_stack)(Addr  , SizeT  ) ;
3184    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_4))(Addr  ) ;   3184    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_4))(Addr  ) ;
3185    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_8))(Addr  ) ;   3185    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_8))(Addr  ) ;
3186    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_12))(Addr  ) ;   3186    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_12))(Addr  ) ;
3187    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_16))(Addr  ) ;   3187    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_16))(Addr  ) ;
3188    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_32))(Addr  ) ;   3188    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_32))(Addr  ) ;
3189    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_112))(Addr  ) ;   3189    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_112))(Addr  ) ;
3190    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_128))(Addr  ) ;   3190    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_128))(Addr  ) ;
3191    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_144))(Addr  ) ;   3191    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_144))(Addr  ) ;
3192    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_160))(Addr  ) ;   3192    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_160))(Addr  ) ;
3193    void (*track_die_mem_stack)(Addr  , SizeT  ) ;   3193    void (*track_die_mem_stack)(Addr  , SizeT  ) ;
3194    void (*track_ban_mem_stack)(Addr  , SizeT  ) ;   3194    void (*track_ban_mem_stack)(Addr  , SizeT  ) ;
3195    void (*track_pre_mem_read)(CorePart  , ThreadId  , Char * , Addr  , SizeT  ) ;   3195    void (*track_pre_mem_read)(CorePart  , ThreadId  , Char * , Addr  , SizeT  ) ;
3196    void (*track_pre_mem_read_asciiz)(CorePart  , ThreadId  , Char * , Addr  ) ;   3196    void (*track_pre_mem_read_asciiz)(CorePart  , ThreadId  , Char * , Addr  ) ;
3197    void (*track_pre_mem_write)(CorePart  , ThreadId  , Char * , Addr  , SizeT  ) ;   3197    void (*track_pre_mem_write)(CorePart  , ThreadId  , Char * , Addr  , SizeT  ) ;
3198    void (*track_post_mem_write)(CorePart  , ThreadId  , Addr  , SizeT  ) ;   3198    void (*track_post_mem_write)(CorePart  , ThreadId  , Addr  , SizeT  ) ;
3199    void (*track_pre_reg_read)(CorePart  , ThreadId  , Char * , PtrdiffT  ,   3199    void (*track_pre_reg_read)(CorePart  , ThreadId  , Char * , PtrdiffT  ,
3200                               SizeT  ) ;   3200                               SizeT  ) ;
3201    void (*track_post_reg_write)(CorePart  , ThreadId  , PtrdiffT  , SizeT  ) ;   3201    void (*track_post_reg_write)(CorePart  , ThreadId  , PtrdiffT  , SizeT  ) ;
3202    void (*track_post_reg_write_clientcall_return)(ThreadId  , PtrdiffT  ,   3202    void (*track_post_reg_write_clientcall_return)(ThreadId  , PtrdiffT  ,
3203                                                   SizeT  , Addr  ) ;   3203                                                   SizeT  , Addr  ) ;
3204    void (*track_start_client_code)(ThreadId  , ULong  ) ;   3204    void (*track_start_client_code)(ThreadId  , ULong  ) ;
3205    void (*track_stop_client_code)(ThreadId  , ULong  ) ;   3205    void (*track_stop_client_code)(ThreadId  , ULong  ) ;
3206    void (*track_pre_thread_ll_create)(ThreadId  , ThreadId  ) ;   3206    void (*track_pre_thread_ll_create)(ThreadId  , ThreadId  ) ;
3207    void (*track_pre_thread_first_insn)(ThreadId  ) ;   3207    void (*track_pre_thread_first_insn)(ThreadId  ) ;
3208    void (*track_pre_thread_ll_exit)(ThreadId  ) ;   3208    void (*track_pre_thread_ll_exit)(ThreadId  ) ;
3209    void (*track_pre_deliver_signal)(ThreadId  , Int sigNo , Bool  ) ;   3209    void (*track_pre_deliver_signal)(ThreadId  , Int sigNo , Bool  ) ;
3210    void (*track_post_deliver_signal)(ThreadId  , Int sigNo ) ;   3210    void (*track_post_deliver_signal)(ThreadId  , Int sigNo ) ;
3211 };   3211 };
3212 typedef struct __anonstruct_VgToolInterface_126 VgToolInterface;   3212 typedef struct __anonstruct_VgToolInterface_126 VgToolInterface;
3213 enum __anonenum_SegKind_127 {   3213 enum __anonenum_SegKind_127 {
3214     SkFree = 0,   3214     SkFree = 0,
3215     SkAnonC = 1,   3215     SkAnonC = 1,
3216     SkAnonV = 2,   3216     SkAnonV = 2,
3217     SkFileC = 3,   3217     SkFileC = 3,
3218     SkFileV = 4,   3218     SkFileV = 4,
3219     SkShmC = 5,   3219     SkShmC = 5,
3220     SkResvn = 6   3220     SkResvn = 6
3221 } ;   3221 } ;
3222 typedef enum __anonenum_SegKind_127 SegKind;   3222 typedef enum __anonenum_SegKind_127 SegKind;
3223 enum __anonenum_ShrinkMode_128 {   3223 enum __anonenum_ShrinkMode_128 {
3224     SmLower = 0,   3224     SmLower = 0,
3225     SmFixed = 1,   3225     SmFixed = 1,
3226     SmUpper = 2   3226     SmUpper = 2
3227 } ;   3227 } ;
3228 typedef enum __anonenum_ShrinkMode_128 ShrinkMode;   3228 typedef enum __anonenum_ShrinkMode_128 ShrinkMode;
3229 struct __anonstruct_NSegment_129 {   3229 struct __anonstruct_NSegment_129 {
3230    SegKind kind ;   3230    SegKind kind ;
3231    Addr start ;   3231    Addr start ;
3232    Addr end ;   3232    Addr end ;
3233    ShrinkMode smode ;   3233    ShrinkMode smode ;
3234    ULong dev ;   3234    ULong dev ;
3235    ULong ino ;   3235    ULong ino ;
3236    Off64T offset ;   3236    Off64T offset ;
3237    UInt mode ;   3237    UInt mode ;
3238    Int fnIdx ;   3238    Int fnIdx ;
3239    Bool hasR ;   3239    Bool hasR ;
3240    Bool hasW ;   3240    Bool hasW ;
3241    Bool hasX ;   3241    Bool hasX ;
3242    Bool hasT ;   3242    Bool hasT ;
3243    Bool isCH ;   3243    Bool isCH ;
3244    Bool mark ;   3244    Bool mark ;
3245 };   3245 };
3246 typedef struct __anonstruct_NSegment_129 NSegment;   3246 typedef struct __anonstruct_NSegment_129 NSegment;
3247 enum __anonenum_rkind_131 {   3247 enum __anonenum_rkind_131 {
3248     MFixed = 0,   3248     MFixed = 0,
3249     MHint = 1,   3249     MHint = 1,
3250     MAny = 2   3250     MAny = 2
3251 } ;   3251 } ;
3252 struct __anonstruct_MapRequest_130 {   3252 struct __anonstruct_MapRequest_130 {
3253    enum __anonenum_rkind_131 rkind ;   3253    enum __anonenum_rkind_131 rkind ;
3254    Addr start ;   3254    Addr start ;
3255    Addr len ;   3255    Addr len ;
3256 };   3256 };
3257 typedef struct __anonstruct_MapRequest_130 MapRequest;   3257 typedef struct __anonstruct_MapRequest_130 MapRequest;
3258 struct __anonstruct_AixCodeSegChange_132 {   3258 struct __anonstruct_AixCodeSegChange_132 {
3259    Addr code_start ;   3259    Addr code_start ;
3260    Word code_len ;   3260    Word code_len ;
3261    Addr data_start ;   3261    Addr data_start ;
3262    Word data_len ;   3262    Word data_len ;
3263    UChar *file_name ;   3263    UChar *file_name ;
3264    UChar *mem_name ;   3264    UChar *mem_name ;
3265    Bool is_mainexe ;   3265    Bool is_mainexe ;
3266    Bool acquire ;   3266    Bool acquire ;
3267 };   3267 };
3268 typedef struct __anonstruct_AixCodeSegChange_132 AixCodeSegChange;   3268 typedef struct __anonstruct_AixCodeSegChange_132 AixCodeSegChange;
3269 struct __anonstruct_VgStack_133 {   3269 struct __anonstruct_VgStack_133 {
3270    HChar bytes[1064960] ;   3270    HChar bytes[1064960] ;
3271 };   3271 };
3272 typedef struct __anonstruct_VgStack_133 VgStack;   3272 typedef struct __anonstruct_VgStack_133 VgStack;
3273 struct __anonstruct_OrigFn_134 {   3273 struct __anonstruct_OrigFn_134 {
3274    unsigned int nraddr ;   3274    unsigned int nraddr ;
3275 };   3275 };
3276 typedef struct __anonstruct_OrigFn_134 OrigFn;   3276 typedef struct __anonstruct_OrigFn_134 OrigFn;
3277 enum __anonenum_Vg_ClientRequest_135 {   3277 enum __anonenum_Vg_ClientRequest_135 {
3278     VG_USERREQ__RUNNING_ON_VALGRIND = 4097,   3278     VG_USERREQ__RUNNING_ON_VALGRIND = 4097,
3279     VG_USERREQ__DISCARD_TRANSLATIONS = 4098,   3279     VG_USERREQ__DISCARD_TRANSLATIONS = 4098,
3280     VG_USERREQ__CLIENT_CALL0 = 4353,   3280     VG_USERREQ__CLIENT_CALL0 = 4353,
3281     VG_USERREQ__CLIENT_CALL1 = 4354,   3281     VG_USERREQ__CLIENT_CALL1 = 4354,
3282     VG_USERREQ__CLIENT_CALL2 = 4355,   3282     VG_USERREQ__CLIENT_CALL2 = 4355,
3283     VG_USERREQ__CLIENT_CALL3 = 4356,   3283     VG_USERREQ__CLIENT_CALL3 = 4356,
3284     VG_USERREQ__COUNT_ERRORS = 4609,   3284     VG_USERREQ__COUNT_ERRORS = 4609,
3285     VG_USERREQ__GDB_MONITOR_COMMAND = 4610,   3285     VG_USERREQ__GDB_MONITOR_COMMAND = 4610,
3286     VG_USERREQ__MALLOCLIKE_BLOCK = 4865,   3286     VG_USERREQ__MALLOCLIKE_BLOCK = 4865,
3287     VG_USERREQ__RESIZEINPLACE_BLOCK = 4875,   3287     VG_USERREQ__RESIZEINPLACE_BLOCK = 4875,
3288     VG_USERREQ__FREELIKE_BLOCK = 4866,   3288     VG_USERREQ__FREELIKE_BLOCK = 4866,
3289     VG_USERREQ__CREATE_MEMPOOL = 4867,   3289     VG_USERREQ__CREATE_MEMPOOL = 4867,
3290     VG_USERREQ__DESTROY_MEMPOOL = 4868,   3290     VG_USERREQ__DESTROY_MEMPOOL = 4868,
3291     VG_USERREQ__MEMPOOL_ALLOC = 4869,   3291     VG_USERREQ__MEMPOOL_ALLOC = 4869,
3292     VG_USERREQ__MEMPOOL_FREE = 4870,   3292     VG_USERREQ__MEMPOOL_FREE = 4870,
3293     VG_USERREQ__MEMPOOL_TRIM = 4871,   3293     VG_USERREQ__MEMPOOL_TRIM = 4871,
3294     VG_USERREQ__MOVE_MEMPOOL = 4872,   3294     VG_USERREQ__MOVE_MEMPOOL = 4872,
3295     VG_USERREQ__MEMPOOL_CHANGE = 4873,   3295     VG_USERREQ__MEMPOOL_CHANGE = 4873,
3296     VG_USERREQ__MEMPOOL_EXISTS = 4874,   3296     VG_USERREQ__MEMPOOL_EXISTS = 4874,
3297     VG_USERREQ__PRINTF = 5121,   3297     VG_USERREQ__PRINTF = 5121,
3298     VG_USERREQ__PRINTF_BACKTRACE = 5122,   3298     VG_USERREQ__PRINTF_BACKTRACE = 5122,
3299     VG_USERREQ__PRINTF_VALIST_BY_REF = 5123,   3299     VG_USERREQ__PRINTF_VALIST_BY_REF = 5123,
3300     VG_USERREQ__PRINTF_BACKTRACE_VALIST_BY_REF = 5124,   3300     VG_USERREQ__PRINTF_BACKTRACE_VALIST_BY_REF = 5124,
3301     VG_USERREQ__STACK_REGISTER = 5377,   3301     VG_USERREQ__STACK_REGISTER = 5377,
3302     VG_USERREQ__STACK_DEREGISTER = 5378,   3302     VG_USERREQ__STACK_DEREGISTER = 5378,
3303     VG_USERREQ__STACK_CHANGE = 5379,   3303     VG_USERREQ__STACK_CHANGE = 5379,
3304     VG_USERREQ__LOAD_PDB_DEBUGINFO = 5633,   3304     VG_USERREQ__LOAD_PDB_DEBUGINFO = 5633,
3305     VG_USERREQ__MAP_IP_TO_SRCLOC = 5889   3305     VG_USERREQ__MAP_IP_TO_SRCLOC = 5889
3306 } ;   3306 } ;
3307 typedef enum __anonenum_Vg_ClientRequest_135 Vg_ClientRequest;   3307 typedef enum __anonenum_Vg_ClientRequest_135 Vg_ClientRequest;
3308 typedef unsigned char gdb_byte;   3308 typedef unsigned char gdb_byte;
3309 typedef Addr CORE_ADDR;   3309 typedef Addr CORE_ADDR;
3310 struct inferior_list_entry;   3310 struct inferior_list_entry;
3311 struct inferior_list {   3311 struct inferior_list {
3312    struct inferior_list_entry *head ;   3312    struct inferior_list_entry *head ;
3313    struct inferior_list_entry *tail ;   3313    struct inferior_list_entry *tail ;
3314 };   3314 };
3315 struct inferior_list_entry {   3315 struct inferior_list_entry {
3316    unsigned long id ;   3316    unsigned long id ;
3317    struct inferior_list_entry *next ;   3317    struct inferior_list_entry *next ;
3318 };   3318 };
3319 struct thread_info;   3319 struct thread_info;
3320 struct thread_info;   3320 struct thread_info;
3321 struct inferior_list_entry;   3321 struct inferior_list_entry;
3322 struct reg;   3322 struct reg;
3323 enum target_signal {   3323 enum target_signal {
3324     TARGET_SIGNAL_0 = 0,   3324     TARGET_SIGNAL_0 = 0,
3325     TARGET_SIGNAL_FIRST = 0,   3325     TARGET_SIGNAL_FIRST = 0,
3326     TARGET_SIGNAL_HUP = 1,   3326     TARGET_SIGNAL_HUP = 1,
3327     TARGET_SIGNAL_INT = 2,   3327     TARGET_SIGNAL_INT = 2,
3328     TARGET_SIGNAL_QUIT = 3,   3328     TARGET_SIGNAL_QUIT = 3,
3329     TARGET_SIGNAL_ILL = 4,   3329     TARGET_SIGNAL_ILL = 4,
3330     TARGET_SIGNAL_TRAP = 5,   3330     TARGET_SIGNAL_TRAP = 5,
3331     TARGET_SIGNAL_ABRT = 6,   3331     TARGET_SIGNAL_ABRT = 6,
3332     TARGET_SIGNAL_EMT = 7,   3332     TARGET_SIGNAL_EMT = 7,
3333     TARGET_SIGNAL_FPE = 8,   3333     TARGET_SIGNAL_FPE = 8,
3334     TARGET_SIGNAL_KILL = 9,   3334     TARGET_SIGNAL_KILL = 9,
3335     TARGET_SIGNAL_BUS = 10,   3335     TARGET_SIGNAL_BUS = 10,
3336     TARGET_SIGNAL_SEGV = 11,   3336     TARGET_SIGNAL_SEGV = 11,
3337     TARGET_SIGNAL_SYS = 12,   3337     TARGET_SIGNAL_SYS = 12,
3338     TARGET_SIGNAL_PIPE = 13,   3338     TARGET_SIGNAL_PIPE = 13,
3339     TARGET_SIGNAL_ALRM = 14,   3339     TARGET_SIGNAL_ALRM = 14,
3340     TARGET_SIGNAL_TERM = 15,   3340     TARGET_SIGNAL_TERM = 15,
3341     TARGET_SIGNAL_URG = 16,   3341     TARGET_SIGNAL_URG = 16,
3342     TARGET_SIGNAL_STOP = 17,   3342     TARGET_SIGNAL_STOP = 17,
3343     TARGET_SIGNAL_TSTP = 18,   3343     TARGET_SIGNAL_TSTP = 18,
3344     TARGET_SIGNAL_CONT = 19,   3344     TARGET_SIGNAL_CONT = 19,
3345     TARGET_SIGNAL_CHLD = 20,   3345     TARGET_SIGNAL_CHLD = 20,
3346     TARGET_SIGNAL_TTIN = 21,   3346     TARGET_SIGNAL_TTIN = 21,
3347     TARGET_SIGNAL_TTOU = 22,   3347     TARGET_SIGNAL_TTOU = 22,
3348     TARGET_SIGNAL_IO = 23,   3348     TARGET_SIGNAL_IO = 23,
3349     TARGET_SIGNAL_XCPU = 24,   3349     TARGET_SIGNAL_XCPU = 24,
3350     TARGET_SIGNAL_XFSZ = 25,   3350     TARGET_SIGNAL_XFSZ = 25,
3351     TARGET_SIGNAL_VTALRM = 26,   3351     TARGET_SIGNAL_VTALRM = 26,
3352     TARGET_SIGNAL_PROF = 27,   3352     TARGET_SIGNAL_PROF = 27,
3353     TARGET_SIGNAL_WINCH = 28,   3353     TARGET_SIGNAL_WINCH = 28,
3354     TARGET_SIGNAL_LOST = 29,   3354     TARGET_SIGNAL_LOST = 29,
3355     TARGET_SIGNAL_USR1 = 30,   3355     TARGET_SIGNAL_USR1 = 30,
3356     TARGET_SIGNAL_USR2 = 31,   3356     TARGET_SIGNAL_USR2 = 31,
3357     TARGET_SIGNAL_PWR = 32,   3357     TARGET_SIGNAL_PWR = 32,
3358     TARGET_SIGNAL_POLL = 33,   3358     TARGET_SIGNAL_POLL = 33,
3359     TARGET_SIGNAL_WIND = 34,   3359     TARGET_SIGNAL_WIND = 34,
3360     TARGET_SIGNAL_PHONE = 35,   3360     TARGET_SIGNAL_PHONE = 35,
3361     TARGET_SIGNAL_WAITING = 36,   3361     TARGET_SIGNAL_WAITING = 36,
3362     TARGET_SIGNAL_LWP = 37,   3362     TARGET_SIGNAL_LWP = 37,
3363     TARGET_SIGNAL_DANGER = 38,   3363     TARGET_SIGNAL_DANGER = 38,
3364     TARGET_SIGNAL_GRANT = 39,   3364     TARGET_SIGNAL_GRANT = 39,
3365     TARGET_SIGNAL_RETRACT = 40,   3365     TARGET_SIGNAL_RETRACT = 40,
3366     TARGET_SIGNAL_MSG = 41,   3366     TARGET_SIGNAL_MSG = 41,
3367     TARGET_SIGNAL_SOUND = 42,   3367     TARGET_SIGNAL_SOUND = 42,
3368     TARGET_SIGNAL_SAK = 43,   3368     TARGET_SIGNAL_SAK = 43,
3369     TARGET_SIGNAL_PRIO = 44,   3369     TARGET_SIGNAL_PRIO = 44,
3370     TARGET_SIGNAL_REALTIME_33 = 45,   3370     TARGET_SIGNAL_REALTIME_33 = 45,
3371     TARGET_SIGNAL_REALTIME_34 = 46,   3371     TARGET_SIGNAL_REALTIME_34 = 46,
3372     TARGET_SIGNAL_REALTIME_35 = 47,   3372     TARGET_SIGNAL_REALTIME_35 = 47,
3373     TARGET_SIGNAL_REALTIME_36 = 48,   3373     TARGET_SIGNAL_REALTIME_36 = 48,
3374     TARGET_SIGNAL_REALTIME_37 = 49,   3374     TARGET_SIGNAL_REALTIME_37 = 49,
3375     TARGET_SIGNAL_REALTIME_38 = 50,   3375     TARGET_SIGNAL_REALTIME_38 = 50,
3376     TARGET_SIGNAL_REALTIME_39 = 51,   3376     TARGET_SIGNAL_REALTIME_39 = 51,
3377     TARGET_SIGNAL_REALTIME_40 = 52,   3377     TARGET_SIGNAL_REALTIME_40 = 52,
3378     TARGET_SIGNAL_REALTIME_41 = 53,   3378     TARGET_SIGNAL_REALTIME_41 = 53,
3379     TARGET_SIGNAL_REALTIME_42 = 54,   3379     TARGET_SIGNAL_REALTIME_42 = 54,
3380     TARGET_SIGNAL_REALTIME_43 = 55,   3380     TARGET_SIGNAL_REALTIME_43 = 55,
3381     TARGET_SIGNAL_REALTIME_44 = 56,   3381     TARGET_SIGNAL_REALTIME_44 = 56,
3382     TARGET_SIGNAL_REALTIME_45 = 57,   3382     TARGET_SIGNAL_REALTIME_45 = 57,
3383     TARGET_SIGNAL_REALTIME_46 = 58,   3383     TARGET_SIGNAL_REALTIME_46 = 58,
3384     TARGET_SIGNAL_REALTIME_47 = 59,   3384     TARGET_SIGNAL_REALTIME_47 = 59,
3385     TARGET_SIGNAL_REALTIME_48 = 60,   3385     TARGET_SIGNAL_REALTIME_48 = 60,
3386     TARGET_SIGNAL_REALTIME_49 = 61,   3386     TARGET_SIGNAL_REALTIME_49 = 61,
3387     TARGET_SIGNAL_REALTIME_50 = 62,   3387     TARGET_SIGNAL_REALTIME_50 = 62,
3388     TARGET_SIGNAL_REALTIME_51 = 63,   3388     TARGET_SIGNAL_REALTIME_51 = 63,
3389     TARGET_SIGNAL_REALTIME_52 = 64,   3389     TARGET_SIGNAL_REALTIME_52 = 64,
3390     TARGET_SIGNAL_REALTIME_53 = 65,   3390     TARGET_SIGNAL_REALTIME_53 = 65,
3391     TARGET_SIGNAL_REALTIME_54 = 66,   3391     TARGET_SIGNAL_REALTIME_54 = 66,
3392     TARGET_SIGNAL_REALTIME_55 = 67,   3392     TARGET_SIGNAL_REALTIME_55 = 67,
3393     TARGET_SIGNAL_REALTIME_56 = 68,   3393     TARGET_SIGNAL_REALTIME_56 = 68,
3394     TARGET_SIGNAL_REALTIME_57 = 69,   3394     TARGET_SIGNAL_REALTIME_57 = 69,
3395     TARGET_SIGNAL_REALTIME_58 = 70,   3395     TARGET_SIGNAL_REALTIME_58 = 70,
3396     TARGET_SIGNAL_REALTIME_59 = 71,   3396     TARGET_SIGNAL_REALTIME_59 = 71,
3397     TARGET_SIGNAL_REALTIME_60 = 72,   3397     TARGET_SIGNAL_REALTIME_60 = 72,
3398     TARGET_SIGNAL_REALTIME_61 = 73,   3398     TARGET_SIGNAL_REALTIME_61 = 73,
3399     TARGET_SIGNAL_REALTIME_62 = 74,   3399     TARGET_SIGNAL_REALTIME_62 = 74,
3400     TARGET_SIGNAL_REALTIME_63 = 75,   3400     TARGET_SIGNAL_REALTIME_63 = 75,
3401     TARGET_SIGNAL_CANCEL = 76,   3401     TARGET_SIGNAL_CANCEL = 76,
3402     TARGET_SIGNAL_REALTIME_32 = 77,   3402     TARGET_SIGNAL_REALTIME_32 = 77,
3403     TARGET_SIGNAL_REALTIME_64 = 78,   3403     TARGET_SIGNAL_REALTIME_64 = 78,
3404     TARGET_SIGNAL_REALTIME_65 = 79,   3404     TARGET_SIGNAL_REALTIME_65 = 79,
3405     TARGET_SIGNAL_REALTIME_66 = 80,   3405     TARGET_SIGNAL_REALTIME_66 = 80,
3406     TARGET_SIGNAL_REALTIME_67 = 81,   3406     TARGET_SIGNAL_REALTIME_67 = 81,
3407     TARGET_SIGNAL_REALTIME_68 = 82,   3407     TARGET_SIGNAL_REALTIME_68 = 82,
3408     TARGET_SIGNAL_REALTIME_69 = 83,   3408     TARGET_SIGNAL_REALTIME_69 = 83,
3409     TARGET_SIGNAL_REALTIME_70 = 84,   3409     TARGET_SIGNAL_REALTIME_70 = 84,
3410     TARGET_SIGNAL_REALTIME_71 = 85,   3410     TARGET_SIGNAL_REALTIME_71 = 85,
3411     TARGET_SIGNAL_REALTIME_72 = 86,   3411     TARGET_SIGNAL_REALTIME_72 = 86,
3412     TARGET_SIGNAL_REALTIME_73 = 87,   3412     TARGET_SIGNAL_REALTIME_73 = 87,
3413     TARGET_SIGNAL_REALTIME_74 = 88,   3413     TARGET_SIGNAL_REALTIME_74 = 88,
3414     TARGET_SIGNAL_REALTIME_75 = 89,   3414     TARGET_SIGNAL_REALTIME_75 = 89,
3415     TARGET_SIGNAL_REALTIME_76 = 90,   3415     TARGET_SIGNAL_REALTIME_76 = 90,
3416     TARGET_SIGNAL_REALTIME_77 = 91,   3416     TARGET_SIGNAL_REALTIME_77 = 91,
3417     TARGET_SIGNAL_REALTIME_78 = 92,   3417     TARGET_SIGNAL_REALTIME_78 = 92,
3418     TARGET_SIGNAL_REALTIME_79 = 93,   3418     TARGET_SIGNAL_REALTIME_79 = 93,
3419     TARGET_SIGNAL_REALTIME_80 = 94,   3419     TARGET_SIGNAL_REALTIME_80 = 94,
3420     TARGET_SIGNAL_REALTIME_81 = 95,   3420     TARGET_SIGNAL_REALTIME_81 = 95,
3421     TARGET_SIGNAL_REALTIME_82 = 96,   3421     TARGET_SIGNAL_REALTIME_82 = 96,
3422     TARGET_SIGNAL_REALTIME_83 = 97,   3422     TARGET_SIGNAL_REALTIME_83 = 97,
3423     TARGET_SIGNAL_REALTIME_84 = 98,   3423     TARGET_SIGNAL_REALTIME_84 = 98,
3424     TARGET_SIGNAL_REALTIME_85 = 99,   3424     TARGET_SIGNAL_REALTIME_85 = 99,
3425     TARGET_SIGNAL_REALTIME_86 = 100,   3425     TARGET_SIGNAL_REALTIME_86 = 100,
3426     TARGET_SIGNAL_REALTIME_87 = 101,   3426     TARGET_SIGNAL_REALTIME_87 = 101,
3427     TARGET_SIGNAL_REALTIME_88 = 102,   3427     TARGET_SIGNAL_REALTIME_88 = 102,
3428     TARGET_SIGNAL_REALTIME_89 = 103,   3428     TARGET_SIGNAL_REALTIME_89 = 103,
3429     TARGET_SIGNAL_REALTIME_90 = 104,   3429     TARGET_SIGNAL_REALTIME_90 = 104,
3430     TARGET_SIGNAL_REALTIME_91 = 105,   3430     TARGET_SIGNAL_REALTIME_91 = 105,
3431     TARGET_SIGNAL_REALTIME_92 = 106,   3431     TARGET_SIGNAL_REALTIME_92 = 106,
3432     TARGET_SIGNAL_REALTIME_93 = 107,   3432     TARGET_SIGNAL_REALTIME_93 = 107,
3433     TARGET_SIGNAL_REALTIME_94 = 108,   3433     TARGET_SIGNAL_REALTIME_94 = 108,
3434     TARGET_SIGNAL_REALTIME_95 = 109,   3434     TARGET_SIGNAL_REALTIME_95 = 109,
3435     TARGET_SIGNAL_REALTIME_96 = 110,   3435     TARGET_SIGNAL_REALTIME_96 = 110,
3436     TARGET_SIGNAL_REALTIME_97 = 111,   3436     TARGET_SIGNAL_REALTIME_97 = 111,
3437     TARGET_SIGNAL_REALTIME_98 = 112,   3437     TARGET_SIGNAL_REALTIME_98 = 112,
3438     TARGET_SIGNAL_REALTIME_99 = 113,   3438     TARGET_SIGNAL_REALTIME_99 = 113,
3439     TARGET_SIGNAL_REALTIME_100 = 114,   3439     TARGET_SIGNAL_REALTIME_100 = 114,
3440     TARGET_SIGNAL_REALTIME_101 = 115,   3440     TARGET_SIGNAL_REALTIME_101 = 115,
3441     TARGET_SIGNAL_REALTIME_102 = 116,   3441     TARGET_SIGNAL_REALTIME_102 = 116,
3442     TARGET_SIGNAL_REALTIME_103 = 117,   3442     TARGET_SIGNAL_REALTIME_103 = 117,
3443     TARGET_SIGNAL_REALTIME_104 = 118,   3443     TARGET_SIGNAL_REALTIME_104 = 118,
3444     TARGET_SIGNAL_REALTIME_105 = 119,   3444     TARGET_SIGNAL_REALTIME_105 = 119,
3445     TARGET_SIGNAL_REALTIME_106 = 120,   3445     TARGET_SIGNAL_REALTIME_106 = 120,
3446     TARGET_SIGNAL_REALTIME_107 = 121,   3446     TARGET_SIGNAL_REALTIME_107 = 121,
3447     TARGET_SIGNAL_REALTIME_108 = 122,   3447     TARGET_SIGNAL_REALTIME_108 = 122,
3448     TARGET_SIGNAL_REALTIME_109 = 123,   3448     TARGET_SIGNAL_REALTIME_109 = 123,
3449     TARGET_SIGNAL_REALTIME_110 = 124,   3449     TARGET_SIGNAL_REALTIME_110 = 124,
3450     TARGET_SIGNAL_REALTIME_111 = 125,   3450     TARGET_SIGNAL_REALTIME_111 = 125,
3451     TARGET_SIGNAL_REALTIME_112 = 126,   3451     TARGET_SIGNAL_REALTIME_112 = 126,
3452     TARGET_SIGNAL_REALTIME_113 = 127,   3452     TARGET_SIGNAL_REALTIME_113 = 127,
3453     TARGET_SIGNAL_REALTIME_114 = 128,   3453     TARGET_SIGNAL_REALTIME_114 = 128,
3454     TARGET_SIGNAL_REALTIME_115 = 129,   3454     TARGET_SIGNAL_REALTIME_115 = 129,
3455     TARGET_SIGNAL_REALTIME_116 = 130,   3455     TARGET_SIGNAL_REALTIME_116 = 130,
3456     TARGET_SIGNAL_REALTIME_117 = 131,   3456     TARGET_SIGNAL_REALTIME_117 = 131,
3457     TARGET_SIGNAL_REALTIME_118 = 132,   3457     TARGET_SIGNAL_REALTIME_118 = 132,
3458     TARGET_SIGNAL_REALTIME_119 = 133,   3458     TARGET_SIGNAL_REALTIME_119 = 133,
3459     TARGET_SIGNAL_REALTIME_120 = 134,   3459     TARGET_SIGNAL_REALTIME_120 = 134,
3460     TARGET_SIGNAL_REALTIME_121 = 135,   3460     TARGET_SIGNAL_REALTIME_121 = 135,
3461     TARGET_SIGNAL_REALTIME_122 = 136,   3461     TARGET_SIGNAL_REALTIME_122 = 136,
3462     TARGET_SIGNAL_REALTIME_123 = 137,   3462     TARGET_SIGNAL_REALTIME_123 = 137,
3463     TARGET_SIGNAL_REALTIME_124 = 138,   3463     TARGET_SIGNAL_REALTIME_124 = 138,
3464     TARGET_SIGNAL_REALTIME_125 = 139,   3464     TARGET_SIGNAL_REALTIME_125 = 139,
3465     TARGET_SIGNAL_REALTIME_126 = 140,   3465     TARGET_SIGNAL_REALTIME_126 = 140,
3466     TARGET_SIGNAL_REALTIME_127 = 141,   3466     TARGET_SIGNAL_REALTIME_127 = 141,
3467     TARGET_SIGNAL_INFO = 142,   3467     TARGET_SIGNAL_INFO = 142,
3468     TARGET_SIGNAL_UNKNOWN = 143,   3468     TARGET_SIGNAL_UNKNOWN = 143,
3469     TARGET_SIGNAL_DEFAULT = 144,   3469     TARGET_SIGNAL_DEFAULT = 144,
3470     TARGET_EXC_BAD_ACCESS = 145,   3470     TARGET_EXC_BAD_ACCESS = 145,
3471     TARGET_EXC_BAD_INSTRUCTION = 146,   3471     TARGET_EXC_BAD_INSTRUCTION = 146,
3472     TARGET_EXC_ARITHMETIC = 147,   3472     TARGET_EXC_ARITHMETIC = 147,
3473     TARGET_EXC_EMULATION = 148,   3473     TARGET_EXC_EMULATION = 148,
3474     TARGET_EXC_SOFTWARE = 149,   3474     TARGET_EXC_SOFTWARE = 149,
3475     TARGET_EXC_BREAKPOINT = 150,   3475     TARGET_EXC_BREAKPOINT = 150,
3476     TARGET_SIGNAL_LAST = 151   3476     TARGET_SIGNAL_LAST = 151
3477 } ;   3477 } ;
3478 struct thread_resume {   3478 struct thread_resume {
3479    unsigned long thread ;   3479    unsigned long thread ;
3480    int leave_stopped ;   3480    int leave_stopped ;
3481    int step ;   3481    int step ;
3482    int sig ;   3482    int sig ;
3483 };   3483 };
3484 struct target_ops {   3484 struct target_ops {
3485    int (*thread_alive)(unsigned long pid ) ;   3485    int (*thread_alive)(unsigned long pid ) ;
3486    void (*resume)(struct thread_resume *resume_info ) ;   3486    void (*resume)(struct thread_resume *resume_info ) ;
3487    unsigned char (*wait)(char *status ) ;   3487    unsigned char (*wait)(char *status ) ;
3488    void (*fetch_registers)(int regno ) ;   3488    void (*fetch_registers)(int regno ) ;
3489    void (*store_registers)(int regno ) ;   3489    void (*store_registers)(int regno ) ;
3490    int (*read_memory)(CORE_ADDR memaddr , unsigned char *myaddr , int len ) ;   3490    int (*read_memory)(CORE_ADDR memaddr , unsigned char *myaddr , int len ) ;
3491    int (*write_memory)(CORE_ADDR memaddr , unsigned char const   *myaddr ,   3491    int (*write_memory)(CORE_ADDR memaddr , unsigned char const   *myaddr ,
3492                        int len ) ;   3492                        int len ) ;
3493    void (*send_signal)(int  ) ;   3493    void (*send_signal)(int  ) ;
3494    char *(*target_xml)(void) ;   3494    char *(*target_xml)(void) ;
3495    char *(*shadow_target_xml)(void) ;   3495    char *(*shadow_target_xml)(void) ;
3496    int (*insert_watchpoint)(char type , CORE_ADDR addr , int len ) ;   3496    int (*insert_watchpoint)(char type , CORE_ADDR addr , int len ) ;
3497    int (*remove_watchpoint)(char type , CORE_ADDR addr , int len ) ;   3497    int (*remove_watchpoint)(char type , CORE_ADDR addr , int len ) ;
3498    int (*stopped_by_watchpoint)(void) ;   3498    int (*stopped_by_watchpoint)(void) ;
3499    CORE_ADDR (*stopped_data_address)(void) ;   3499    CORE_ADDR (*stopped_data_address)(void) ;
3500 };   3500 };
3501 enum __anonenum_transfer_direction_136 {   3501 enum __anonenum_transfer_direction_136 {
3502     valgrind_to_gdbserver = 0,   3502     valgrind_to_gdbserver = 0,
3503     gdbserver_to_valgrind = 1   3503     gdbserver_to_valgrind = 1
3504 } ;   3504 } ;
3505 typedef enum __anonenum_transfer_direction_136 transfer_direction;   3505 typedef enum __anonenum_transfer_direction_136 transfer_direction;
3506 enum __anonenum_CallReason_137 {   3506 enum __anonenum_CallReason_137 {
3507     init_reason = 0,   3507     init_reason = 0,
3508     vgdb_reason = 1,   3508     vgdb_reason = 1,
3509     core_reason = 2,   3509     core_reason = 2,
3510     break_reason = 3,   3510     break_reason = 3,
3511     watch_reason = 4,   3511     watch_reason = 4,
3512     signal_reason = 5   3512     signal_reason = 5
3513 } ;   3513 } ;
3514 typedef enum __anonenum_CallReason_137 CallReason;   3514 typedef enum __anonenum_CallReason_137 CallReason;
3515 enum __anonenum_GS_Kind_138 {   3515 enum __anonenum_GS_Kind_138 {
3516     GS_break = 0,   3516     GS_break = 0,
3517     GS_jump = 1   3517     GS_jump = 1
3518 } ;   3518 } ;
3519 typedef enum __anonenum_GS_Kind_138 GS_Kind;   3519 typedef enum __anonenum_GS_Kind_138 GS_Kind;
3520 struct _GS_Address {   3520 struct _GS_Address {
3521    struct _GS_Address *next ;   3521    struct _GS_Address *next ;
3522    Addr addr ;   3522    Addr addr ;
3523    GS_Kind kind ;   3523    GS_Kind kind ;
3524 };   3524 };
3525 typedef struct _GS_Address GS_Address;   3525 typedef struct _GS_Address GS_Address;
3526 struct _GS_Watch {   3526 struct _GS_Watch {
3527    struct _GS_Watch *next ;   3527    struct _GS_Watch *next ;
3528    Addr addr ;   3528    Addr addr ;
3529    SizeT len ;   3529    SizeT len ;
3530    PointKind kind ;   3530    PointKind kind ;
3531 };   3531 };
3532 typedef struct _GS_Watch GS_Watch;   3532 typedef struct _GS_Watch GS_Watch;
3533 struct mon_out_buf {   3533 struct mon_out_buf {
3534    char buf[8190] ;   3534    char buf[8190] ;
3535    int next ;   3535    int next ;
3536    UInt ret ;   3536    UInt ret ;
3537 };   3537 };
3538 __inline static Bool toBool(Int x )   3538 __inline static Bool toBool(Int x )
3539 {   3539 {
3540   Int r ;   3540   Int r ;
3541   int tmp ;   3541   int tmp ;
3542     3542  
3543   {   3543   {
3544   if (x == 0) {   3544   if (x == 0) {
3545     tmp = (int )((Bool )0);   3545     tmp = (int )((Bool )0);
3546   } else {   3546   } else {
3547     tmp = (int )((Bool )1);   3547     tmp = (int )((Bool )1);
3548   }   3548   }
3549   r = tmp;   3549   r = tmp;
3550   return ((Bool )r);   3550   return ((Bool )r);
3551 }   3551 }
3552 }   3552 }
3553 __inline static UChar toUChar(Int x )   3553 __inline static UChar toUChar(Int x )
3554 {   3554 {
3555     3555  
3556     3556  
3557   {   3557   {
3558   x &= 255;   3558   x &= 255;
3559   return ((UChar )x);   3559   return ((UChar )x);
3560 }   3560 }
3561 }   3561 }
3562 __inline static HChar toHChar(Int x )   3562 __inline static HChar toHChar(Int x )
3563 {   3563 {
3564     3564  
3565     3565  
3566   {   3566   {
3567   x &= 255;   3567   x &= 255;
3568   return ((HChar )x);   3568   return ((HChar )x);
3569 }   3569 }
3570 }   3570 }
3571 __inline static UShort toUShort(Int x )   3571 __inline static UShort toUShort(Int x )
3572 {   3572 {
3573     3573  
3574     3574  
3575   {   3575   {
3576   x &= 65535;   3576   x &= 65535;
3577   return ((UShort )x);   3577   return ((UShort )x);
3578 }   3578 }
3579 }   3579 }
3580 __inline static Short toShort(Int x )   3580 __inline static Short toShort(Int x )
3581 {   3581 {
3582     3582  
3583     3583  
3584   {   3584   {
3585   x &= 65535;   3585   x &= 65535;
3586   return ((Short )x);   3586   return ((Short )x);
3587 }   3587 }
3588 }   3588 }
3589 __inline static UInt toUInt(Long x )   3589 __inline static UInt toUInt(Long x )
3590 {   3590 {
3591     3591  
3592     3592  
3593   {   3593   {
3594   x &= 4294967295LL;   3594   x &= 4294967295LL;
3595   return ((UInt )x);   3595   return ((UInt )x);
3596 }   3596 }
3597 }   3597 }
3598 __inline static ULong Ptr_to_ULong(void *p )   3598 __inline static ULong Ptr_to_ULong(void *p )
3599 {   3599 {
3600   UInt w ;   3600   UInt w ;
3601     3601  
3602   {   3602   {
3603   w = (UInt )p;   3603   w = (UInt )p;
3604   return ((ULong )w);   3604   return ((ULong )w);
3605 }   3605 }
3606 }   3606 }
3607 __inline static void *ULong_to_Ptr(ULong n )   3607 __inline static void *ULong_to_Ptr(ULong n )
3608 {   3608 {
3609   UInt w ;   3609   UInt w ;
3610     3610  
3611   {   3611   {
3612   w = (UInt )n;   3612   w = (UInt )n;
3613   return ((void *)w);   3613   return ((void *)w);
3614 }   3614 }
3615 }   3615 }
3616 __inline static Bool sr_isError(SysRes sr )   3616 __inline static Bool sr_isError(SysRes sr )
3617 {   3617 {
3618     3618  
3619     3619  
3620   {   3620   {
3621   return (sr._isError);   3621   return (sr._isError);
3622 }   3622 }
3623 }   3623 }
3624 __inline static UWord sr_Res(SysRes sr )   3624 __inline static UWord sr_Res(SysRes sr )
3625 {   3625 {
3626   UWord tmp ;   3626   UWord tmp ;
3627     3627  
3628   {   3628   {
3629   if (sr._isError) {   3629   if (sr._isError) {
3630     tmp = (UWord )0;   3630     tmp = (UWord )0;
3631   } else {   3631   } else {
3632     tmp = sr._val;   3632     tmp = sr._val;
3633   }   3633   }
3634   return (tmp);   3634   return (tmp);
3635 }   3635 }
3636 }   3636 }
3637 __inline static UWord sr_ResHI(SysRes sr )   3637 __inline static UWord sr_ResHI(SysRes sr )
3638 {   3638 {
3639     3639  
3640     3640  
3641   {   3641   {
3642   return ((UWord )0);   3642   return ((UWord )0);
3643 }   3643 }
3644 }   3644 }
3645 __inline static UWord sr_Err(SysRes sr )   3645 __inline static UWord sr_Err(SysRes sr )
3646 {   3646 {
3647   UWord tmp ;   3647   UWord tmp ;
3648     3648  
3649   {   3649   {
3650   if (sr._isError) {   3650   if (sr._isError) {
3651     tmp = sr._val;   3651     tmp = sr._val;
3652   } else {   3652   } else {
3653     tmp = (UWord )0;   3653     tmp = (UWord )0;
3654   }   3654   }
3655   return (tmp);   3655   return (tmp);
3656 }   3656 }
3657 }   3657 }
3658 __inline static Bool sr_EQ(SysRes sr1 , SysRes sr2 )   3658 __inline static Bool sr_EQ(SysRes sr1 , SysRes sr2 )
3659 {   3659 {
3660   int tmp ;   3660   int tmp ;
3661     3661  
3662   {   3662   {
3663   if (sr1._val == sr2._val) {   3663   if (sr1._val == sr2._val) {
3664     if (sr1._isError) {   3664     if (sr1._isError) {
3665       if (sr2._isError) {   3665       if (sr2._isError) {
3666         tmp = 1;   3666         tmp = 1;
3667       } else {   3667       } else {
3668         goto _L;   3668         goto _L;
3669       }   3669       }
3670     } else   3670     } else
3671     _L: /* CIL Label */   3671     _L: /* CIL Label */
3672     if (! sr1._isError) {   3672     if (! sr1._isError) {
3673       if (! sr2._isError) {   3673       if (! sr2._isError) {
3674         tmp = 1;   3674         tmp = 1;
3675       } else {   3675       } else {
3676         tmp = 0;   3676         tmp = 0;
3677       }   3677       }
3678     } else {   3678     } else {
3679       tmp = 0;   3679       tmp = 0;
3680     }   3680     }
3681   } else {   3681   } else {
3682     tmp = 0;   3682     tmp = 0;
3683   }   3683   }
3684   return ((Bool )tmp);   3684   return ((Bool )tmp);
3685 }   3685 }
3686 }   3686 }
3687 extern void ppIRType(IRType  ) ;   3687 extern void ppIRType(IRType  ) ;
3688 extern Int sizeofIRType(IRType  ) ;   3688 extern Int sizeofIRType(IRType  ) ;
3689 extern IRConst *IRConst_U1(Bool  ) ;   3689 extern IRConst *IRConst_U1(Bool  ) ;
3690 extern IRConst *IRConst_U8(UChar  ) ;   3690 extern IRConst *IRConst_U8(UChar  ) ;
3691 extern IRConst *IRConst_U16(UShort  ) ;   3691 extern IRConst *IRConst_U16(UShort  ) ;
3692 extern IRConst *IRConst_U32(UInt  ) ;   3692 extern IRConst *IRConst_U32(UInt  ) ;
3693 extern IRConst *IRConst_U64(ULong  ) ;   3693 extern IRConst *IRConst_U64(ULong  ) ;
3694 extern IRConst *IRConst_F32(Float  ) ;   3694 extern IRConst *IRConst_F32(Float  ) ;
3695 extern IRConst *IRConst_F32i(UInt  ) ;   3695 extern IRConst *IRConst_F32i(UInt  ) ;
3696 extern IRConst *IRConst_F64(Double  ) ;   3696 extern IRConst *IRConst_F64(Double  ) ;
3697 extern IRConst *IRConst_F64i(ULong  ) ;   3697 extern IRConst *IRConst_F64i(ULong  ) ;
3698 extern IRConst *IRConst_V128(UShort  ) ;   3698 extern IRConst *IRConst_V128(UShort  ) ;
3699 extern IRConst *deepCopyIRConst(IRConst * ) ;   3699 extern IRConst *deepCopyIRConst(IRConst * ) ;
3700 extern void ppIRConst(IRConst * ) ;   3700 extern void ppIRConst(IRConst * ) ;
3701 extern Bool eqIRConst(IRConst * , IRConst * ) ;   3701 extern Bool eqIRConst(IRConst * , IRConst * ) ;
3702 extern IRCallee *mkIRCallee(Int regparms , HChar *name , void *addr ) ;   3702 extern IRCallee *mkIRCallee(Int regparms , HChar *name , void *addr ) ;
3703 extern IRCallee *deepCopyIRCallee(IRCallee * ) ;   3703 extern IRCallee *deepCopyIRCallee(IRCallee * ) ;
3704 extern void ppIRCallee(IRCallee * ) ;   3704 extern void ppIRCallee(IRCallee * ) ;
3705 extern IRRegArray *mkIRRegArray(Int  , IRType  , Int  ) ;   3705 extern IRRegArray *mkIRRegArray(Int  , IRType  , Int  ) ;
3706 extern IRRegArray *deepCopyIRRegArray(IRRegArray * ) ;   3706 extern IRRegArray *deepCopyIRRegArray(IRRegArray * ) ;
3707 extern void ppIRRegArray(IRRegArray * ) ;   3707 extern void ppIRRegArray(IRRegArray * ) ;
3708 extern Bool eqIRRegArray(IRRegArray * , IRRegArray * ) ;   3708 extern Bool eqIRRegArray(IRRegArray * , IRRegArray * ) ;
3709 extern void ppIRTemp(IRTemp  ) ;   3709 extern void ppIRTemp(IRTemp  ) ;
3710 extern void ppIROp(IROp  ) ;   3710 extern void ppIROp(IROp  ) ;
3711 extern IRExpr *IRExpr_Binder(Int binder ) ;   3711 extern IRExpr *IRExpr_Binder(Int binder ) ;
3712 extern IRExpr *IRExpr_Get(Int off , IRType ty ) ;   3712 extern IRExpr *IRExpr_Get(Int off , IRType ty ) ;
3713 extern IRExpr *IRExpr_GetI(IRRegArray *descr , IRExpr *ix , Int bias ) ;   3713 extern IRExpr *IRExpr_GetI(IRRegArray *descr , IRExpr *ix , Int bias ) ;
3714 extern IRExpr *IRExpr_RdTmp(IRTemp tmp ) ;   3714 extern IRExpr *IRExpr_RdTmp(IRTemp tmp ) ;
3715 extern IRExpr *IRExpr_Qop(IROp op , IRExpr *arg1 , IRExpr *arg2 , IRExpr *arg3 ,   3715 extern IRExpr *IRExpr_Qop(IROp op , IRExpr *arg1 , IRExpr *arg2 , IRExpr *arg3 ,
3716                           IRExpr *arg4 ) ;   3716                           IRExpr *arg4 ) ;
3717 extern IRExpr *IRExpr_Triop(IROp op , IRExpr *arg1 , IRExpr *arg2 ,   3717 extern IRExpr *IRExpr_Triop(IROp op , IRExpr *arg1 , IRExpr *arg2 ,
3718                             IRExpr *arg3 ) ;   3718                             IRExpr *arg3 ) ;
3719 extern IRExpr *IRExpr_Binop(IROp op , IRExpr *arg1 , IRExpr *arg2 ) ;   3719 extern IRExpr *IRExpr_Binop(IROp op , IRExpr *arg1 , IRExpr *arg2 ) ;
3720 extern IRExpr *IRExpr_Unop(IROp op , IRExpr *arg ) ;   3720 extern IRExpr *IRExpr_Unop(IROp op , IRExpr *arg ) ;
3721 extern IRExpr *IRExpr_Load(IREndness end , IRType ty , IRExpr *addr ) ;   3721 extern IRExpr *IRExpr_Load(IREndness end , IRType ty , IRExpr *addr ) ;
3722 extern IRExpr *IRExpr_Const(IRConst *con ) ;   3722 extern IRExpr *IRExpr_Const(IRConst *con ) ;
3723 extern IRExpr *IRExpr_CCall(IRCallee *cee , IRType retty , IRExpr **args ) ;   3723 extern IRExpr *IRExpr_CCall(IRCallee *cee , IRType retty , IRExpr **args ) ;
3724 extern IRExpr *IRExpr_Mux0X(IRExpr *cond , IRExpr *expr0 , IRExpr *exprX ) ;   3724 extern IRExpr *IRExpr_Mux0X(IRExpr *cond , IRExpr *expr0 , IRExpr *exprX ) ;
3725 extern IRExpr *deepCopyIRExpr(IRExpr * ) ;   3725 extern IRExpr *deepCopyIRExpr(IRExpr * ) ;
3726 extern void ppIRExpr(IRExpr * ) ;   3726 extern void ppIRExpr(IRExpr * ) ;
3727 extern IRExpr **mkIRExprVec_0(void) ;   3727 extern IRExpr **mkIRExprVec_0(void) ;
3728 extern IRExpr **mkIRExprVec_1(IRExpr * ) ;   3728 extern IRExpr **mkIRExprVec_1(IRExpr * ) ;
3729 extern IRExpr **mkIRExprVec_2(IRExpr * , IRExpr * ) ;   3729 extern IRExpr **mkIRExprVec_2(IRExpr * , IRExpr * ) ;
3730 extern IRExpr **mkIRExprVec_3(IRExpr * , IRExpr * , IRExpr * ) ;   3730 extern IRExpr **mkIRExprVec_3(IRExpr * , IRExpr * , IRExpr * ) ;
3731 extern IRExpr **mkIRExprVec_4(IRExpr * , IRExpr * , IRExpr * , IRExpr * ) ;   3731 extern IRExpr **mkIRExprVec_4(IRExpr * , IRExpr * , IRExpr * , IRExpr * ) ;
3732 extern IRExpr **mkIRExprVec_5(IRExpr * , IRExpr * , IRExpr * , IRExpr * ,   3732 extern IRExpr **mkIRExprVec_5(IRExpr * , IRExpr * , IRExpr * , IRExpr * ,
3733                               IRExpr * ) ;   3733                               IRExpr * ) ;
3734 extern IRExpr **mkIRExprVec_6(IRExpr * , IRExpr * , IRExpr * , IRExpr * ,   3734 extern IRExpr **mkIRExprVec_6(IRExpr * , IRExpr * , IRExpr * , IRExpr * ,
3735                               IRExpr * , IRExpr * ) ;   3735                               IRExpr * , IRExpr * ) ;
3736 extern IRExpr **mkIRExprVec_7(IRExpr * , IRExpr * , IRExpr * , IRExpr * ,   3736 extern IRExpr **mkIRExprVec_7(IRExpr * , IRExpr * , IRExpr * , IRExpr * ,
3737                               IRExpr * , IRExpr * , IRExpr * ) ;   3737                               IRExpr * , IRExpr * , IRExpr * ) ;
3738 extern IRExpr **mkIRExprVec_8(IRExpr * , IRExpr * , IRExpr * , IRExpr * ,   3738 extern IRExpr **mkIRExprVec_8(IRExpr * , IRExpr * , IRExpr * , IRExpr * ,
3739                               IRExpr * , IRExpr * , IRExpr * , IRExpr * ) ;   3739                               IRExpr * , IRExpr * , IRExpr * , IRExpr * ) ;
3740 extern IRExpr **shallowCopyIRExprVec(IRExpr ** ) ;   3740 extern IRExpr **shallowCopyIRExprVec(IRExpr ** ) ;
3741 extern IRExpr **deepCopyIRExprVec(IRExpr ** ) ;   3741 extern IRExpr **deepCopyIRExprVec(IRExpr ** ) ;
3742 extern IRExpr *mkIRExpr_HWord(HWord  ) ;   3742 extern IRExpr *mkIRExpr_HWord(HWord  ) ;
3743 extern IRExpr *mkIRExprCCall(IRType retty , Int regparms , HChar *name ,   3743 extern IRExpr *mkIRExprCCall(IRType retty , Int regparms , HChar *name ,
3744                              void *addr , IRExpr **args ) ;   3744                              void *addr , IRExpr **args ) ;
3745 __inline static Bool isIRAtom(IRExpr *e )   3745 __inline static Bool isIRAtom(IRExpr *e )
3746 {   3746 {
3747   int tmp ;   3747   int tmp ;
3748   Bool tmp___0 ;   3748   Bool tmp___0 ;
3749     3749  
3750   {   3750   {
3751   if ((unsigned int )e->tag == 86019U) {   3751   if ((unsigned int )e->tag == 86019U) {
3752     tmp = 1;   3752     tmp = 1;
3753   } else   3753   } else
3754   if ((unsigned int )e->tag == 86025U) {   3754   if ((unsigned int )e->tag == 86025U) {
3755     tmp = 1;   3755     tmp = 1;
3756   } else {   3756   } else {
3757     tmp = 0;   3757     tmp = 0;
3758   }   3758   }
3759   tmp___0 = toBool(tmp);   3759   tmp___0 = toBool(tmp);
3760   return (tmp___0);   3760   return (tmp___0);
3761 }   3761 }
3762 }   3762 }
3763 extern Bool eqIRAtom(IRExpr * , IRExpr * ) ;   3763 extern Bool eqIRAtom(IRExpr * , IRExpr * ) ;
3764 extern void ppIRJumpKind(IRJumpKind  ) ;   3764 extern void ppIRJumpKind(IRJumpKind  ) ;
3765 extern void ppIREffect(IREffect  ) ;   3765 extern void ppIREffect(IREffect  ) ;
3766 extern void ppIRDirty(IRDirty * ) ;   3766 extern void ppIRDirty(IRDirty * ) ;
3767 extern IRDirty *emptyIRDirty(void) ;   3767 extern IRDirty *emptyIRDirty(void) ;
3768 extern IRDirty *deepCopyIRDirty(IRDirty * ) ;   3768 extern IRDirty *deepCopyIRDirty(IRDirty * ) ;
3769 extern IRDirty *unsafeIRDirty_0_N(Int regparms , HChar *name , void *addr ,   3769 extern IRDirty *unsafeIRDirty_0_N(Int regparms , HChar *name , void *addr ,
3770                                   IRExpr **args ) ;   3770                                   IRExpr **args ) ;
3771 extern IRDirty *unsafeIRDirty_1_N(IRTemp dst , Int regparms , HChar *name ,   3771 extern IRDirty *unsafeIRDirty_1_N(IRTemp dst , Int regparms , HChar *name ,
3772                                   void *addr , IRExpr **args ) ;   3772                                   void *addr , IRExpr **args ) ;
3773 extern void ppIRMBusEvent(IRMBusEvent  ) ;   3773 extern void ppIRMBusEvent(IRMBusEvent  ) ;
3774 extern void ppIRCAS(IRCAS *cas ) ;   3774 extern void ppIRCAS(IRCAS *cas ) ;
3775 extern IRCAS *mkIRCAS(IRTemp oldHi , IRTemp oldLo , IREndness end ,   3775 extern IRCAS *mkIRCAS(IRTemp oldHi , IRTemp oldLo , IREndness end ,
3776                       IRExpr *addr , IRExpr *expdHi , IRExpr *expdLo ,   3776                       IRExpr *addr , IRExpr *expdHi , IRExpr *expdLo ,
3777                       IRExpr *dataHi , IRExpr *dataLo ) ;   3777                       IRExpr *dataHi , IRExpr *dataLo ) ;
3778 extern IRCAS *deepCopyIRCAS(IRCAS * ) ;   3778 extern IRCAS *deepCopyIRCAS(IRCAS * ) ;
3779 extern IRStmt *IRStmt_NoOp(void) ;   3779 extern IRStmt *IRStmt_NoOp(void) ;
3780 extern IRStmt *IRStmt_IMark(Addr64 addr , Int len , UChar delta ) ;   3780 extern IRStmt *IRStmt_IMark(Addr64 addr , Int len , UChar delta ) ;
3781 extern IRStmt *IRStmt_AbiHint(IRExpr *base , Int len , IRExpr *nia ) ;   3781 extern IRStmt *IRStmt_AbiHint(IRExpr *base , Int len , IRExpr *nia ) ;
3782 extern IRStmt *IRStmt_Put(Int off , IRExpr *data ) ;   3782 extern IRStmt *IRStmt_Put(Int off , IRExpr *data ) ;
3783 extern IRStmt *IRStmt_PutI(IRRegArray *descr , IRExpr *ix , Int bias ,   3783 extern IRStmt *IRStmt_PutI(IRRegArray *descr , IRExpr *ix , Int bias ,
3784                            IRExpr *data ) ;   3784                            IRExpr *data ) ;
3785 extern IRStmt *IRStmt_WrTmp(IRTemp tmp , IRExpr *data ) ;   3785 extern IRStmt *IRStmt_WrTmp(IRTemp tmp , IRExpr *data ) ;
3786 extern IRStmt *IRStmt_Store(IREndness end , IRExpr *addr , IRExpr *data ) ;   3786 extern IRStmt *IRStmt_Store(IREndness end , IRExpr *addr , IRExpr *data ) ;
3787 extern IRStmt *IRStmt_CAS(IRCAS *details ) ;   3787 extern IRStmt *IRStmt_CAS(IRCAS *details ) ;
3788 extern IRStmt *IRStmt_LLSC(IREndness end , IRTemp result , IRExpr *addr ,   3788 extern IRStmt *IRStmt_LLSC(IREndness end , IRTemp result , IRExpr *addr ,
3789                            IRExpr *storedata ) ;   3789                            IRExpr *storedata ) ;
3790 extern IRStmt *IRStmt_Dirty(IRDirty *details ) ;   3790 extern IRStmt *IRStmt_Dirty(IRDirty *details ) ;
3791 extern IRStmt *IRStmt_MBE(IRMBusEvent event ) ;   3791 extern IRStmt *IRStmt_MBE(IRMBusEvent event ) ;
3792 extern IRStmt *IRStmt_Exit(IRExpr *guard , IRJumpKind jk , IRConst *dst ) ;   3792 extern IRStmt *IRStmt_Exit(IRExpr *guard , IRJumpKind jk , IRConst *dst ) ;
3793 extern IRStmt *deepCopyIRStmt(IRStmt * ) ;   3793 extern IRStmt *deepCopyIRStmt(IRStmt * ) ;
3794 extern void ppIRStmt(IRStmt * ) ;   3794 extern void ppIRStmt(IRStmt * ) ;
3795 extern IRTemp newIRTemp(IRTypeEnv * , IRType  ) ;   3795 extern IRTemp newIRTemp(IRTypeEnv * , IRType  ) ;
3796 extern IRTypeEnv *deepCopyIRTypeEnv(IRTypeEnv * ) ;   3796 extern IRTypeEnv *deepCopyIRTypeEnv(IRTypeEnv * ) ;
3797 extern void ppIRTypeEnv(IRTypeEnv * ) ;   3797 extern void ppIRTypeEnv(IRTypeEnv * ) ;
3798 extern IRSB *emptyIRSB(void) ;   3798 extern IRSB *emptyIRSB(void) ;
3799 extern IRSB *deepCopyIRSB(IRSB * ) ;   3799 extern IRSB *deepCopyIRSB(IRSB * ) ;
3800 extern IRSB *deepCopyIRSBExceptStmts(IRSB * ) ;   3800 extern IRSB *deepCopyIRSBExceptStmts(IRSB * ) ;
3801 extern void ppIRSB(IRSB * ) ;   3801 extern void ppIRSB(IRSB * ) ;
3802 extern void addStmtToIRSB(IRSB * , IRStmt * ) ;   3802 extern void addStmtToIRSB(IRSB * , IRStmt * ) ;
3803 extern IRTypeEnv *emptyIRTypeEnv(void) ;   3803 extern IRTypeEnv *emptyIRTypeEnv(void) ;
3804 extern IRType typeOfIRConst(IRConst * ) ;   3804 extern IRType typeOfIRConst(IRConst * ) ;
3805 extern IRType typeOfIRTemp(IRTypeEnv * , IRTemp  ) ;   3805 extern IRType typeOfIRTemp(IRTypeEnv * , IRTemp  ) ;
3806 extern IRType typeOfIRExpr(IRTypeEnv * , IRExpr * ) ;   3806 extern IRType typeOfIRExpr(IRTypeEnv * , IRExpr * ) ;
3807 extern void sanityCheckIRSB(IRSB *bb , HChar *caller , Bool require_flatness ,   3807 extern void sanityCheckIRSB(IRSB *bb , HChar *caller , Bool require_flatness ,
3808                             IRType guest_word_size ) ;   3808                             IRType guest_word_size ) ;
3809 extern Bool isFlatIRStmt(IRStmt * ) ;   3809 extern Bool isFlatIRStmt(IRStmt * ) ;
3810 extern Bool isPlausibleIRType(IRType ty ) ;   3810 extern Bool isPlausibleIRType(IRType ty ) ;
3811 extern HChar const   *LibVEX_ppVexArch(VexArch  ) ;   3811 extern HChar const   *LibVEX_ppVexArch(VexArch  ) ;
3812 extern HChar const   *LibVEX_ppVexHwCaps(VexArch  , UInt  ) ;   3812 extern HChar const   *LibVEX_ppVexHwCaps(VexArch  , UInt  ) ;
3813 extern void LibVEX_default_VexArchInfo(VexArchInfo *vai ) ;   3813 extern void LibVEX_default_VexArchInfo(VexArchInfo *vai ) ;
3814 extern void LibVEX_default_VexAbiInfo(VexAbiInfo *vbi ) ;   3814 extern void LibVEX_default_VexAbiInfo(VexAbiInfo *vbi ) ;
3815 extern void LibVEX_default_VexControl(VexControl *vcon ) ;   3815 extern void LibVEX_default_VexControl(VexControl *vcon ) ;
3816 extern HChar *private_LibVEX_alloc_first ;   3816 extern HChar *private_LibVEX_alloc_first ;
3817 extern HChar *private_LibVEX_alloc_curr ;   3817 extern HChar *private_LibVEX_alloc_curr ;
3818 extern HChar *private_LibVEX_alloc_last ;   3818 extern HChar *private_LibVEX_alloc_last ;
3819 extern  __attribute__((__noreturn__)) void private_LibVEX_alloc_OOM(void) ;   3819 extern  __attribute__((__noreturn__)) void private_LibVEX_alloc_OOM(void) ;
3820 __inline static void *LibVEX_Alloc(Int nbytes )   3820 __inline static void *LibVEX_Alloc(Int nbytes )
3821 {   3821 {
3822   HChar *curr ;   3822   HChar *curr ;
3823   HChar *next ;   3823   HChar *next ;
3824   Int ALIGN ;   3824   Int ALIGN ;
3825     3825  
3826   {   3826   {
3827   ALIGN = (Int )(sizeof(void *) - 1U);   3827   ALIGN = (Int )(sizeof(void *) - 1U);
3828   nbytes = (nbytes + ALIGN) & ~ ALIGN;   3828   nbytes = (nbytes + ALIGN) & ~ ALIGN;
3829   curr = private_LibVEX_alloc_curr;   3829   curr = private_LibVEX_alloc_curr;
3830   next = curr + nbytes;   3830   next = curr + nbytes;
3831   if ((unsigned int )next >= (unsigned int )private_LibVEX_alloc_last) {   3831   if ((unsigned int )next >= (unsigned int )private_LibVEX_alloc_last) {
3832     private_LibVEX_alloc_OOM();   3832     private_LibVEX_alloc_OOM();
3833   } else {   3833   } else {
3834     3834  
3835   }   3835   }
3836   private_LibVEX_alloc_curr = next;   3836   private_LibVEX_alloc_curr = next;
3837   return ((void *)curr);   3837   return ((void *)curr);
3838 }   3838 }
3839 }   3839 }
3840 extern void LibVEX_ShowAllocStats(void) ;   3840 extern void LibVEX_ShowAllocStats(void) ;
3841 extern void LibVEX_Init( __attribute__((__noreturn__)) void (*failure_exit)(void) ,   3841 extern void LibVEX_Init( __attribute__((__noreturn__)) void (*failure_exit)(void) ,
3842                         void (*log_bytes)(HChar * , Int nbytes ) ,   3842                         void (*log_bytes)(HChar * , Int nbytes ) ,
3843                         Int debuglevel , Bool valgrind_support ,   3843                         Int debuglevel , Bool valgrind_support ,
3844                         VexControl *vcon ) ;   3844                         VexControl *vcon ) ;
3845 extern VexTranslateResult LibVEX_Translate(VexTranslateArgs * ) ;   3845 extern VexTranslateResult LibVEX_Translate(VexTranslateArgs * ) ;
3846 extern void LibVEX_ShowStats(void) ;   3846 extern void LibVEX_ShowStats(void) ;
3847 extern HChar *LibVEX_EmWarn_string(VexEmWarn  ) ;   3847 extern HChar *LibVEX_EmWarn_string(VexEmWarn  ) ;
3848 extern void LibVEX_GuestX86_initialise(VexGuestX86State *vex_state ) ;   3848 extern void LibVEX_GuestX86_initialise(VexGuestX86State *vex_state ) ;
3849 extern UInt LibVEX_GuestX86_get_eflags(VexGuestX86State *vex_state ) ;   3849 extern UInt LibVEX_GuestX86_get_eflags(VexGuestX86State *vex_state ) ;
3850 extern void LibVEX_GuestX86_put_eflag_c(UInt new_carry_flag ,   3850 extern void LibVEX_GuestX86_put_eflag_c(UInt new_carry_flag ,
3851                                         VexGuestX86State *vex_state ) ;   3851                                         VexGuestX86State *vex_state ) ;
3852 __inline static struct vki_cmsghdr *__vki_cmsg_nxthdr(void *__ctl ,   3852 __inline static struct vki_cmsghdr *__vki_cmsg_nxthdr(void *__ctl ,
3853                                                       __vki_kernel_size_t __size ,   3853                                                       __vki_kernel_size_t __size ,
3854                                                       struct vki_cmsghdr *__cmsg )   3854                                                       struct vki_cmsghdr *__cmsg )
3855 {   3855 {
3856   struct vki_cmsghdr *__ptr ;   3856   struct vki_cmsghdr *__ptr ;
3857     3857  
3858   {   3858   {
3859   __ptr = (struct vki_cmsghdr *)((unsigned char *)__cmsg + (((__cmsg->cmsg_len + sizeof(long )) - 1U) & ~ (sizeof(long ) - 1U)));   3859   __ptr = (struct vki_cmsghdr *)((unsigned char *)__cmsg + (((__cmsg->cmsg_len + sizeof(long )) - 1U) & ~ (sizeof(long ) - 1U)));
3860   if ((unsigned long )((char *)(__ptr + 1) - (char *)__ctl) > (unsigned long )__size) {   3860   if ((unsigned long )((char *)(__ptr + 1) - (char *)__ctl) > (unsigned long )__size) {
3861     return ((struct vki_cmsghdr *)0);   3861     return ((struct vki_cmsghdr *)0);
3862   } else {   3862   } else {
3863     3863  
3864   }   3864   }
3865   return (__ptr);   3865   return (__ptr);
3866 }   3866 }
3867 }   3867 }
3868 __inline static struct vki_cmsghdr *vki_cmsg_nxthdr(struct vki_msghdr *__msg ,   3868 __inline static struct vki_cmsghdr *vki_cmsg_nxthdr(struct vki_msghdr *__msg ,
3869                                                     struct vki_cmsghdr *__cmsg )   3869                                                     struct vki_cmsghdr *__cmsg )
3870 {   3870 {
3871   struct vki_cmsghdr *tmp ;   3871   struct vki_cmsghdr *tmp ;
3872     3872  
3873   {   3873   {
3874   tmp = __vki_cmsg_nxthdr(__msg->msg_control, __msg->msg_controllen, __cmsg);   3874   tmp = __vki_cmsg_nxthdr(__msg->msg_control, __msg->msg_controllen, __cmsg);
3875   return (tmp);   3875   return (tmp);
3876 }   3876 }
3877 }   3877 }
3878 extern void vgPlain_vki_do_initial_consistency_checks(void) ;   3878 extern void vgPlain_vki_do_initial_consistency_checks(void) ;
3879 extern void vgPlain_debugLog_startup(Int level , HChar *who ) ;   3879 extern void vgPlain_debugLog_startup(Int level , HChar *who ) ;
3880 extern Int vgPlain_debugLog_getLevel(void) ;   3880 extern Int vgPlain_debugLog_getLevel(void) ;
3881 extern void ( /* format attribute */  vgPlain_debugLog)(Int level ,   3881 extern void ( /* format attribute */  vgPlain_debugLog)(Int level ,
3882                                                         HChar const   *modulename ,   3882                                                         HChar const   *modulename ,
3883                                                         HChar const   *format   3883                                                         HChar const   *format
3884                                                         , ...) ;   3884                                                         , ...) ;
3885 extern UInt vgPlain_debugLog_vprintf(void (*send_fn)(HChar  , void * ) ,   3885 extern UInt vgPlain_debugLog_vprintf(void (*send_fn)(HChar  , void * ) ,
3886                                      void *send_arg2 , HChar const   *format ,   3886                                      void *send_arg2 , HChar const   *format ,
3887                                      va_list vargs ) ;   3887                                      va_list vargs ) ;
3888 extern Char **vgPlain_client_envp ;   3888 extern Char **vgPlain_client_envp ;
3889 extern Char *vgPlain_getenv(Char *name ) ;   3889 extern Char *vgPlain_getenv(Char *name ) ;
3890 extern Char const   *vgPlain_libdir ;   3890 extern Char const   *vgPlain_libdir ;
3891 extern Char const   *vgPlain_LD_PRELOAD_var_name ;   3891 extern Char const   *vgPlain_LD_PRELOAD_var_name ;
3892 extern Int vgPlain_waitpid(Int pid , Int *status , Int options ) ;   3892 extern Int vgPlain_waitpid(Int pid , Int *status , Int options ) ;
3893 extern Int vgPlain_system(Char *cmd ) ;   3893 extern Int vgPlain_system(Char *cmd ) ;
3894 extern Int vgPlain_fork(void) ;   3894 extern Int vgPlain_fork(void) ;
3895 extern void vgPlain_execv(Char *filename , Char **argv ) ;   3895 extern void vgPlain_execv(Char *filename , Char **argv ) ;
3896 extern Int vgPlain_getrlimit(Int resource , struct vki_rlimit *rlim ) ;   3896 extern Int vgPlain_getrlimit(Int resource , struct vki_rlimit *rlim ) ;
3897 extern Int vgPlain_setrlimit(Int resource , struct vki_rlimit  const  *rlim ) ;   3897 extern Int vgPlain_setrlimit(Int resource , struct vki_rlimit  const  *rlim ) ;
3898 extern Int vgPlain_prctl(Int option , ULong arg2 , ULong arg3 , ULong arg4 ,   3898 extern Int vgPlain_prctl(Int option , ULong arg2 , ULong arg3 , ULong arg4 ,
3899                          ULong arg5 ) ;   3899                          ULong arg5 ) ;
3900 extern Int vgPlain_gettid(void) ;   3900 extern Int vgPlain_gettid(void) ;
3901 extern Int vgPlain_getpid(void) ;   3901 extern Int vgPlain_getpid(void) ;
3902 extern Int vgPlain_getppid(void) ;   3902 extern Int vgPlain_getppid(void) ;
3903 extern Int vgPlain_getpgrp(void) ;   3903 extern Int vgPlain_getpgrp(void) ;
3904 extern Int vgPlain_geteuid(void) ;   3904 extern Int vgPlain_geteuid(void) ;
3905 extern Int vgPlain_getegid(void) ;   3905 extern Int vgPlain_getegid(void) ;
3906 extern UInt vgPlain_read_millisecond_timer(void) ;   3906 extern UInt vgPlain_read_millisecond_timer(void) ;
3907 extern void vgPlain_atfork(void (*pre)(ThreadId  ) ,   3907 extern void vgPlain_atfork(void (*pre)(ThreadId  ) ,
3908                            void (*parent)(ThreadId  ) ,   3908                            void (*parent)(ThreadId  ) ,
3909                            void (*child)(ThreadId  ) ) ;   3909                            void (*child)(ThreadId  ) ) ;
3910 extern Char **vgPlain_env_setenv(Char ***envp , Char const   *varname ,   3910 extern Char **vgPlain_env_setenv(Char ***envp , Char const   *varname ,
3911                                  Char const   *val ) ;   3911                                  Char const   *val ) ;
3912 extern void vgPlain_env_unsetenv(Char **env , Char const   *varname ) ;   3912 extern void vgPlain_env_unsetenv(Char **env , Char const   *varname ) ;
3913 extern void vgPlain_env_remove_valgrind_env_stuff(Char **env ) ;   3913 extern void vgPlain_env_remove_valgrind_env_stuff(Char **env ) ;
3914 extern Char **vgPlain_env_clone(Char **env_clone ) ;   3914 extern Char **vgPlain_env_clone(Char **env_clone ) ;
3915 extern Int vgPlain_getgroups(Int size , UInt *list ) ;   3915 extern Int vgPlain_getgroups(Int size , UInt *list ) ;
3916 extern Int vgPlain_ptrace(Int request , Int pid , void *addr , void *data ) ;   3916 extern Int vgPlain_ptrace(Int request , Int pid , void *addr , void *data ) ;
3917 extern void vgPlain_do_atfork_pre(ThreadId tid ) ;   3917 extern void vgPlain_do_atfork_pre(ThreadId tid ) ;
3918 extern void vgPlain_do_atfork_parent(ThreadId tid ) ;   3918 extern void vgPlain_do_atfork_parent(ThreadId tid ) ;
3919 extern void vgPlain_do_atfork_child(ThreadId tid ) ;   3919 extern void vgPlain_do_atfork_child(ThreadId tid ) ;
3920 extern UInt ( /* format attribute */  vgPlain_sprintf)(Char *buf ,   3920 extern UInt ( /* format attribute */  vgPlain_sprintf)(Char *buf ,
3921                                                        HChar const   *format   3921                                                        HChar const   *format
3922                                                        , ...) ;   3922                                                        , ...) ;
3923 extern UInt ( /* format attribute */  vgPlain_vsprintf)(Char *buf ,   3923 extern UInt ( /* format attribute */  vgPlain_vsprintf)(Char *buf ,
3924                                                         HChar const   *format ,   3924                                                         HChar const   *format ,
3925                                                         va_list vargs ) ;   3925                                                         va_list vargs ) ;
3926 extern UInt ( /* format attribute */  vgPlain_snprintf)(Char *buf , Int size ,   3926 extern UInt ( /* format attribute */  vgPlain_snprintf)(Char *buf , Int size ,
3927                                                         HChar const   *format   3927                                                         HChar const   *format
3928                                                         , ...) ;   3928                                                         , ...) ;
3929 extern UInt ( /* format attribute */  vgPlain_vsnprintf)(Char *buf , Int size ,   3929 extern UInt ( /* format attribute */  vgPlain_vsnprintf)(Char *buf , Int size ,
3930                                                          HChar const   *format ,   3930                                                          HChar const   *format ,
3931                                                          va_list vargs ) ;   3931                                                          va_list vargs ) ;
3932 extern void vgPlain_percentify(ULong n , ULong m , UInt d , Int n_buf ,   3932 extern void vgPlain_percentify(ULong n , ULong m , UInt d , Int n_buf ,
3933                                char *buf ) ;   3933                                char *buf ) ;
3934 extern UInt ( /* format attribute */  vgPlain_printf)(HChar const   *format   3934 extern UInt ( /* format attribute */  vgPlain_printf)(HChar const   *format
3935                                                       , ...) ;   3935                                                       , ...) ;
3936 extern UInt ( /* format attribute */  vgPlain_vprintf)(HChar const   *format ,   3936 extern UInt ( /* format attribute */  vgPlain_vprintf)(HChar const   *format ,
3937                                                        va_list vargs ) ;   3937                                                        va_list vargs ) ;
3938 extern UInt ( /* format attribute */  vgPlain_printf_xml)(HChar const   *format   3938 extern UInt ( /* format attribute */  vgPlain_printf_xml)(HChar const   *format
3939                                                           , ...) ;   3939                                                           , ...) ;
3940 extern UInt ( /* format attribute */  vgPlain_vprintf_xml)(HChar const   *format ,   3940 extern UInt ( /* format attribute */  vgPlain_vprintf_xml)(HChar const   *format ,
3941                                                            va_list vargs ) ;   3941                                                            va_list vargs ) ;
3942 extern UInt vgPlain_printf_xml_no_f_c(HChar const   *format  , ...) ;   3942 extern UInt vgPlain_printf_xml_no_f_c(HChar const   *format  , ...) ;
3943 extern void vgPlain_vcbprintf(void (*char_sink)(HChar  , void *opaque ) ,   3943 extern void vgPlain_vcbprintf(void (*char_sink)(HChar  , void *opaque ) ,
3944                               void *opaque , HChar const   *format ,   3944                               void *opaque , HChar const   *format ,
3945                               va_list vargs ) ;   3945                               va_list vargs ) ;
3946 extern UInt vgPlain_message_no_f_c(VgMsgKind kind , HChar const   *format  , ...) ;   3946 extern UInt vgPlain_message_no_f_c(VgMsgKind kind , HChar const   *format  , ...) ;
3947 extern UInt ( /* format attribute */  vgPlain_message)(VgMsgKind kind ,   3947 extern UInt ( /* format attribute */  vgPlain_message)(VgMsgKind kind ,
3948                                                        HChar const   *format   3948                                                        HChar const   *format
3949                                                        , ...) ;   3949                                                        , ...) ;
3950 extern UInt ( /* format attribute */  vgPlain_vmessage)(VgMsgKind kind ,   3950 extern UInt ( /* format attribute */  vgPlain_vmessage)(VgMsgKind kind ,
3951                                                         HChar const   *format ,   3951                                                         HChar const   *format ,
3952                                                         va_list vargs ) ;   3952                                                         va_list vargs ) ;
3953 extern UInt ( /* format attribute */  vgPlain_fmsg)(HChar const   *format  , ...) ;   3953 extern UInt ( /* format attribute */  vgPlain_fmsg)(HChar const   *format  , ...) ;
3954 extern  __attribute__((__noreturn__)) void ( /* format attribute */  vgPlain_fmsg_bad_option)(HChar *opt ,   3954 extern  __attribute__((__noreturn__)) void ( /* format attribute */  vgPlain_fmsg_bad_option)(HChar *opt ,
3955                                                                                               HChar const   *format   3955                                                                                               HChar const   *format
3956                                                                                               , ...) ;   3956                                                                                               , ...) ;
3957 extern UInt ( /* format attribute */  vgPlain_umsg)(HChar const   *format  , ...) ;   3957 extern UInt ( /* format attribute */  vgPlain_umsg)(HChar const   *format  , ...) ;
3958 extern UInt ( /* format attribute */  vgPlain_dmsg)(HChar const   *format  , ...) ;   3958 extern UInt ( /* format attribute */  vgPlain_dmsg)(HChar const   *format  , ...) ;
3959 extern void vgPlain_message_flush(void) ;   3959 extern void vgPlain_message_flush(void) ;
3960 extern OutputSink vgPlain_log_output_sink ;   3960 extern OutputSink vgPlain_log_output_sink ;
3961 extern OutputSink vgPlain_xml_output_sink ;   3961 extern OutputSink vgPlain_xml_output_sink ;
3962 extern void vgPlain_elapsed_wallclock_time(HChar *buf ) ;   3962 extern void vgPlain_elapsed_wallclock_time(HChar *buf ) ;
3963 extern  __attribute__((__noreturn__)) void vgPlain_err_missing_prog(void) ;   3963 extern  __attribute__((__noreturn__)) void vgPlain_err_missing_prog(void) ;
3964 extern  __attribute__((__noreturn__)) void vgPlain_err_config_error(Char *msg ) ;   3964 extern  __attribute__((__noreturn__)) void vgPlain_err_config_error(Char *msg ) ;
3965 extern void *vgPlain_malloc(HChar *cc , SizeT nbytes ) ;   3965 extern void *vgPlain_malloc(HChar *cc , SizeT nbytes ) ;
3966 extern void vgPlain_free(void *p ) ;   3966 extern void vgPlain_free(void *p ) ;
3967 extern void *vgPlain_calloc(HChar *cc , SizeT n , SizeT bytes_per_elem ) ;   3967 extern void *vgPlain_calloc(HChar *cc , SizeT n , SizeT bytes_per_elem ) ;
3968 extern void *vgPlain_realloc(HChar *cc , void *p , SizeT size ) ;   3968 extern void *vgPlain_realloc(HChar *cc , void *p , SizeT size ) ;
3969 extern Char *vgPlain_strdup(HChar *cc , Char const   *s ) ;   3969 extern Char *vgPlain_strdup(HChar *cc , Char const   *s ) ;
3970 extern SizeT vgPlain_malloc_usable_size(void *p ) ;   3970 extern SizeT vgPlain_malloc_usable_size(void *p ) ;
3971 extern  __attribute__((__noreturn__)) void vgPlain_out_of_memory_NORETURN(HChar *who ,   3971 extern  __attribute__((__noreturn__)) void vgPlain_out_of_memory_NORETURN(HChar *who ,
3972                                                                           SizeT szB ) ;   3972                                                                           SizeT szB ) ;
3973 extern void *vgPlain_arena_malloc(ArenaId arena , HChar *cc , SizeT nbytes ) ;   3973 extern void *vgPlain_arena_malloc(ArenaId arena , HChar *cc , SizeT nbytes ) ;
3974 extern void vgPlain_arena_free(ArenaId arena , void *ptr ) ;   3974 extern void vgPlain_arena_free(ArenaId arena , void *ptr ) ;
3975 extern void *vgPlain_arena_calloc(ArenaId arena , HChar *cc , SizeT nmemb ,   3975 extern void *vgPlain_arena_calloc(ArenaId arena , HChar *cc , SizeT nmemb ,
3976                                   SizeT bytes_per_memb ) ;   3976                                   SizeT bytes_per_memb ) ;
3977 extern void *vgPlain_arena_realloc(ArenaId arena , HChar *cc , void *ptr ,   3977 extern void *vgPlain_arena_realloc(ArenaId arena , HChar *cc , void *ptr ,
3978                                    SizeT size ) ;   3978                                    SizeT size ) ;
3979 extern void *vgPlain_arena_memalign(ArenaId aid , HChar *cc , SizeT req_alignB ,   3979 extern void *vgPlain_arena_memalign(ArenaId aid , HChar *cc , SizeT req_alignB ,
3980                                     SizeT req_pszB ) ;   3980                                     SizeT req_pszB ) ;
3981 extern Char *vgPlain_arena_strdup(ArenaId aid , HChar *cc , Char const   *s ) ;   3981 extern Char *vgPlain_arena_strdup(ArenaId aid , HChar *cc , Char const   *s ) ;
3982 extern SizeT vgPlain_arena_malloc_usable_size(ArenaId aid , void *payload ) ;   3982 extern SizeT vgPlain_arena_malloc_usable_size(ArenaId aid , void *payload ) ;
3983 extern void vgPlain_mallinfo(ThreadId tid , struct vg_mallinfo *mi ) ;   3983 extern void vgPlain_mallinfo(ThreadId tid , struct vg_mallinfo *mi ) ;
3984 extern void vgPlain_sanity_check_malloc_all(void) ;   3984 extern void vgPlain_sanity_check_malloc_all(void) ;
3985 extern void vgPlain_print_all_arena_stats(void) ;   3985 extern void vgPlain_print_all_arena_stats(void) ;
3986 extern void vgPlain_print_arena_cc_analysis(void) ;   3986 extern void vgPlain_print_arena_cc_analysis(void) ;
3987 void vgPlain_gdbserver(ThreadId tid ) ;   3987 void vgPlain_gdbserver(ThreadId tid ) ;
3988 Int vgPlain_dyn_vgdb_error  ;   3988 Int vgPlain_dyn_vgdb_error  ;
3989 char *vgPlain_ppPointKind(PointKind kind ) ;   3989 char *vgPlain_ppPointKind(PointKind kind ) ;
3990 Bool vgPlain_is_watched(PointKind kind , Addr addr , Int szB ) ;   3990 Bool vgPlain_is_watched(PointKind kind , Addr addr , Int szB ) ;
3991 void vgPlain_needs_watchpoint(Bool (*watchpoint)(PointKind kind , Bool insert ,   3991 void vgPlain_needs_watchpoint(Bool (*watchpoint)(PointKind kind , Bool insert ,
3992                                                  Addr addr , SizeT len ) ) ;   3992                                                  Addr addr , SizeT len ) ) ;
3993 UInt ( /* format attribute */  vgPlain_gdb_printf)(HChar const   *format  , ...) ;   3993 UInt ( /* format attribute */  vgPlain_gdb_printf)(HChar const   *format  , ...) ;
3994 Int vgPlain_keyword_id(Char *keywords , Char *input_word ,   3994 Int vgPlain_keyword_id(Char *keywords , Char *input_word ,
3995                        kwd_report_error report ) ;   3995                        kwd_report_error report ) ;
3996 void vgPlain_strtok_get_address_and_size(Addr *address , SizeT *szB ,   3996 void vgPlain_strtok_get_address_and_size(Addr *address , SizeT *szB ,
3997                                          Char **ssaveptr ) ;   3997                                          Char **ssaveptr ) ;
3998 void vgPlain_gdbserver_prerun_action(ThreadId tid ) ;   3998 void vgPlain_gdbserver_prerun_action(ThreadId tid ) ;
3999 Bool vgPlain_gdbserver_activity(ThreadId tid ) ;   3999 Bool vgPlain_gdbserver_activity(ThreadId tid ) ;
4000 Bool vgPlain_gdbserver_point(PointKind kind , Bool insert , Addr addr , int len ) ;   4000 Bool vgPlain_gdbserver_point(PointKind kind , Bool insert , Addr addr , int len ) ;
4001 void vgPlain_invoke_gdbserver(int check ) ;   4001 void vgPlain_invoke_gdbserver(int check ) ;
4002 Bool vgPlain_gdbserver_report_signal(Int sigNo , ThreadId tid ) ;   4002 Bool vgPlain_gdbserver_report_signal(Int sigNo , ThreadId tid ) ;
4003 IRSB *vgPlain_instrument_for_gdbserver_if_needed(IRSB *sb_in ,   4003 IRSB *vgPlain_instrument_for_gdbserver_if_needed(IRSB *sb_in ,
4004                                                  VexGuestLayout *layout ,   4004                                                  VexGuestLayout *layout ,
4005                                                  VexGuestExtents *vge ,   4005                                                  VexGuestExtents *vge ,
4006                                                  IRType gWordTy ,   4006                                                  IRType gWordTy ,
4007                                                  IRType hWordTy ) ;   4007                                                  IRType hWordTy ) ;
4008 void vgPlain_gdbserver_status_output(void) ;   4008 void vgPlain_gdbserver_status_output(void) ;
4009 extern Int vgPlain_clo_verbosity ;   4009 extern Int vgPlain_clo_verbosity ;
4010 extern Bool vgPlain_clo_stats ;   4010 extern Bool vgPlain_clo_stats ;
4011 extern Int vgPlain_clo_vgdb_error ;   4011 extern Int vgPlain_clo_vgdb_error ;
4012 extern Bool vgPlain_clo_xml ;   4012 extern Bool vgPlain_clo_xml ;
4013 extern HChar *vgPlain_clo_xml_user_comment ;   4013 extern HChar *vgPlain_clo_xml_user_comment ;
4014 extern VexControl vgPlain_clo_vex_control ;   4014 extern VexControl vgPlain_clo_vex_control ;
4015 extern Int vgPlain_clo_backtrace_size ;   4015 extern Int vgPlain_clo_backtrace_size ;
4016 extern Bool vgPlain_clo_show_below_main ;   4016 extern Bool vgPlain_clo_show_below_main ;
4017 extern Char *vgPlain_expand_file_name(Char *option_name , Char *format ) ;   4017 extern Char *vgPlain_expand_file_name(Char *option_name , Char *format ) ;
4018 extern Bool vgPlain_clo_error_limit ;   4018 extern Bool vgPlain_clo_error_limit ;
4019 extern Int vgPlain_clo_error_exitcode ;   4019 extern Int vgPlain_clo_error_exitcode ;
4020 extern VgVgdb vgPlain_clo_vgdb ;   4020 extern VgVgdb vgPlain_clo_vgdb ;
4021 extern Int vgPlain_clo_vgdb_poll ;   4021 extern Int vgPlain_clo_vgdb_poll ;
4022 extern Char *vgPlain_clo_vgdb_prefix ;   4022 extern Char *vgPlain_clo_vgdb_prefix ;
4023 extern Bool vgPlain_clo_vgdb_shadow_registers ;   4023 extern Bool vgPlain_clo_vgdb_shadow_registers ;
4024 extern Bool vgPlain_clo_db_attach ;   4024 extern Bool vgPlain_clo_db_attach ;
4025 extern Char *vgPlain_clo_db_command ;   4025 extern Char *vgPlain_clo_db_command ;
4026 extern Int vgPlain_clo_gen_suppressions ;   4026 extern Int vgPlain_clo_gen_suppressions ;
4027 extern Int vgPlain_clo_sanity_level ;   4027 extern Int vgPlain_clo_sanity_level ;
4028 extern Bool vgPlain_clo_demangle ;   4028 extern Bool vgPlain_clo_demangle ;
4029 extern Bool vgPlain_clo_trace_children ;   4029 extern Bool vgPlain_clo_trace_children ;
4030 extern HChar *vgPlain_clo_trace_children_skip ;   4030 extern HChar *vgPlain_clo_trace_children_skip ;
4031 extern HChar *vgPlain_clo_trace_children_skip_by_arg ;   4031 extern HChar *vgPlain_clo_trace_children_skip_by_arg ;
4032 extern Bool vgPlain_clo_child_silent_after_fork ;   4032 extern Bool vgPlain_clo_child_silent_after_fork ;
4033 extern Char *vgPlain_clo_log_fname_expanded ;   4033 extern Char *vgPlain_clo_log_fname_expanded ;
4034 extern Char *vgPlain_clo_xml_fname_expanded ;   4034 extern Char *vgPlain_clo_xml_fname_expanded ;
4035 extern Bool vgPlain_clo_time_stamp ;   4035 extern Bool vgPlain_clo_time_stamp ;
4036 extern Int vgPlain_clo_input_fd ;   4036 extern Int vgPlain_clo_input_fd ;
4037 extern Int vgPlain_clo_n_suppressions ;   4037 extern Int vgPlain_clo_n_suppressions ;
4038 extern Char *vgPlain_clo_suppressions[100] ;   4038 extern Char *vgPlain_clo_suppressions[100] ;
4039 extern Int vgPlain_clo_n_fullpath_after ;   4039 extern Int vgPlain_clo_n_fullpath_after ;
4040 extern Char *vgPlain_clo_fullpath_after[100] ;   4040 extern Char *vgPlain_clo_fullpath_after[100] ;
4041 extern UChar vgPlain_clo_trace_flags ;   4041 extern UChar vgPlain_clo_trace_flags ;
4042 extern UChar vgPlain_clo_profile_flags ;   4042 extern UChar vgPlain_clo_profile_flags ;
4043 extern Int vgPlain_clo_trace_notbelow ;   4043 extern Int vgPlain_clo_trace_notbelow ;
4044 extern Bool vgPlain_clo_trace_syscalls ;   4044 extern Bool vgPlain_clo_trace_syscalls ;
4045 extern Bool vgPlain_clo_trace_signals ;   4045 extern Bool vgPlain_clo_trace_signals ;
4046 extern Bool vgPlain_clo_trace_symtab ;   4046 extern Bool vgPlain_clo_trace_symtab ;
4047 extern HChar *vgPlain_clo_trace_symtab_patt ;   4047 extern HChar *vgPlain_clo_trace_symtab_patt ;
4048 extern Bool vgPlain_clo_trace_cfi ;   4048 extern Bool vgPlain_clo_trace_cfi ;
4049 extern Bool vgPlain_clo_debug_dump_syms ;   4049 extern Bool vgPlain_clo_debug_dump_syms ;
4050 extern Bool vgPlain_clo_debug_dump_line ;   4050 extern Bool vgPlain_clo_debug_dump_line ;
4051 extern Bool vgPlain_clo_debug_dump_frames ;   4051 extern Bool vgPlain_clo_debug_dump_frames ;
4052 extern Bool vgPlain_clo_trace_redir ;   4052 extern Bool vgPlain_clo_trace_redir ;
4053 extern Bool vgPlain_clo_trace_sched ;   4053 extern Bool vgPlain_clo_trace_sched ;
4054 extern Bool vgPlain_clo_profile_heap ;   4054 extern Bool vgPlain_clo_profile_heap ;
4055 extern Int vgPlain_clo_dump_error ;   4055 extern Int vgPlain_clo_dump_error ;
4056 extern Char *vgPlain_clo_sim_hints ;   4056 extern Char *vgPlain_clo_sim_hints ;
4057 extern Bool vgPlain_clo_sym_offsets ;   4057 extern Bool vgPlain_clo_sym_offsets ;
4058 extern Bool vgPlain_clo_read_var_info ;   4058 extern Bool vgPlain_clo_read_var_info ;
4059 extern Char *vgPlain_clo_prefix_to_strip ;   4059 extern Char *vgPlain_clo_prefix_to_strip ;
4060 extern Int vgPlain_clo_n_req_tsyms ;   4060 extern Int vgPlain_clo_n_req_tsyms ;
4061 extern HChar *vgPlain_clo_req_tsyms[100] ;   4061 extern HChar *vgPlain_clo_req_tsyms[100] ;
4062 extern Bool vgPlain_clo_track_fds ;   4062 extern Bool vgPlain_clo_track_fds ;
4063 extern Bool vgPlain_clo_run_libc_freeres ;   4063 extern Bool vgPlain_clo_run_libc_freeres ;
4064 extern Bool vgPlain_clo_show_emwarns ;   4064 extern Bool vgPlain_clo_show_emwarns ;
4065 extern Word vgPlain_clo_max_stackframe ;   4065 extern Word vgPlain_clo_max_stackframe ;
4066 extern Word vgPlain_clo_main_stacksize ;   4066 extern Word vgPlain_clo_main_stacksize ;
4067 extern Bool vgPlain_clo_wait_for_gdb ;   4067 extern Bool vgPlain_clo_wait_for_gdb ;
4068 extern VgSmc vgPlain_clo_smc_check ;   4068 extern VgSmc vgPlain_clo_smc_check ;
4069 extern HChar *vgPlain_clo_kernel_variant ;   4069 extern HChar *vgPlain_clo_kernel_variant ;
4070 extern Bool vgPlain_clo_dsymutil ;   4070 extern Bool vgPlain_clo_dsymutil ;
4071 extern Bool vgPlain_should_we_trace_this_child(HChar *child_exe_name ,   4071 extern Bool vgPlain_should_we_trace_this_child(HChar *child_exe_name ,
4072                                                HChar **child_argv ) ;   4072                                                HChar **child_argv ) ;
4073 extern  __attribute__((__nothrow__)) int setjmp(struct __jmp_buf_tag *__env ) ;   4073 extern  __attribute__((__nothrow__)) int setjmp(struct __jmp_buf_tag *__env ) ;
4074 extern  __attribute__((__nothrow__)) int __sigsetjmp(struct __jmp_buf_tag *__env ,   4074 extern  __attribute__((__nothrow__)) int __sigsetjmp(struct __jmp_buf_tag *__env ,
4075                                                      int __savemask ) ;   4075                                                      int __savemask ) ;
4076 extern  __attribute__((__nothrow__)) int _setjmp(struct __jmp_buf_tag *__env ) ;   4076 extern  __attribute__((__nothrow__)) int _setjmp(struct __jmp_buf_tag *__env ) ;
4077 extern  __attribute__((__nothrow__,   4077 extern  __attribute__((__nothrow__,
4078 __noreturn__)) void longjmp(struct __jmp_buf_tag *__env , int __val ) ;   4078 __noreturn__)) void longjmp(struct __jmp_buf_tag *__env , int __val ) ;
4079 extern  __attribute__((__nothrow__,   4079 extern  __attribute__((__nothrow__,
4080 __noreturn__)) void _longjmp(struct __jmp_buf_tag *__env , int __val ) ;   4080 __noreturn__)) void _longjmp(struct __jmp_buf_tag *__env , int __val ) ;
4081 extern  __attribute__((__nothrow__,   4081 extern  __attribute__((__nothrow__,
4082 __noreturn__)) void siglongjmp(struct __jmp_buf_tag *__env , int __val ) ;   4082 __noreturn__)) void siglongjmp(struct __jmp_buf_tag *__env , int __val ) ;
4083 extern ThreadId vgPlain_get_running_tid(void) ;   4083 extern ThreadId vgPlain_get_running_tid(void) ;
4084 extern ThreadState vgPlain_threads[500] ;   4084 extern ThreadState vgPlain_threads[500] ;
4085 extern ThreadId vgPlain_running_tid ;   4085 extern ThreadId vgPlain_running_tid ;
4086 extern HChar const   *vgPlain_name_of_ThreadStatus(ThreadStatus status ) ;   4086 extern HChar const   *vgPlain_name_of_ThreadStatus(ThreadStatus status ) ;
4087 extern ThreadState *vgPlain_get_ThreadState(ThreadId tid ) ;   4087 extern ThreadState *vgPlain_get_ThreadState(ThreadId tid ) ;
4088 extern Bool vgPlain_is_valid_tid(ThreadId tid ) ;   4088 extern Bool vgPlain_is_valid_tid(ThreadId tid ) ;
4089 extern Bool vgPlain_is_running_thread(ThreadId tid ) ;   4089 extern Bool vgPlain_is_running_thread(ThreadId tid ) ;
4090 extern Bool vgPlain_is_exiting(ThreadId tid ) ;   4090 extern Bool vgPlain_is_exiting(ThreadId tid ) ;
4091 extern Int vgPlain_count_living_threads(void) ;   4091 extern Int vgPlain_count_living_threads(void) ;
4092 extern Int vgPlain_count_runnable_threads(void) ;   4092 extern Int vgPlain_count_runnable_threads(void) ;
4093 extern ThreadId vgPlain_lwpid_to_vgtid(Int lwpid ) ;   4093 extern ThreadId vgPlain_lwpid_to_vgtid(Int lwpid ) ;
4094 extern FastCacheEntry __attribute__((__aligned__(16)))  vgPlain_tt_fast[1 << 15] ;   4094 extern FastCacheEntry __attribute__((__aligned__(16)))  vgPlain_tt_fast[1 << 15] ;
4095 extern UInt *vgPlain_tt_fastN[1 << 15] ;   4095 extern UInt *vgPlain_tt_fastN[1 << 15] ;
4096 extern void vgPlain_init_tt_tc(void) ;   4096 extern void vgPlain_init_tt_tc(void) ;
4097 extern void vgPlain_add_to_transtab(VexGuestExtents *vge , Addr64 entry ,   4097 extern void vgPlain_add_to_transtab(VexGuestExtents *vge , Addr64 entry ,
4098                                     AddrH code , UInt code_len ,   4098                                     AddrH code , UInt code_len ,
4099                                     Bool is_self_checking ) ;   4099                                     Bool is_self_checking ) ;
4100 extern Bool vgPlain_search_transtab(AddrH *result , Addr64 guest_addr ,   4100 extern Bool vgPlain_search_transtab(AddrH *result , Addr64 guest_addr ,
4101                                     Bool upd_cache ) ;   4101                                     Bool upd_cache ) ;
4102 extern void vgPlain_discard_translations(Addr64 start , ULong range ,   4102 extern void vgPlain_discard_translations(Addr64 start , ULong range ,
4103                                          HChar *who ) ;   4103                                          HChar *who ) ;
4104 extern void vgPlain_print_tt_tc_stats(void) ;   4104 extern void vgPlain_print_tt_tc_stats(void) ;
4105 extern UInt vgPlain_get_bbs_translated(void) ;   4105 extern UInt vgPlain_get_bbs_translated(void) ;
4106 extern void vgPlain_add_to_unredir_transtab(VexGuestExtents *vge ,   4106 extern void vgPlain_add_to_unredir_transtab(VexGuestExtents *vge ,
4107                                             Addr64 entry , AddrH code ,   4107                                             Addr64 entry , AddrH code ,
4108                                             UInt code_len ) ;   4108                                             UInt code_len ) ;
4109 extern Bool vgPlain_search_unredir_transtab(AddrH *result , Addr64 guest_addr ) ;   4109 extern Bool vgPlain_search_unredir_transtab(AddrH *result , Addr64 guest_addr ) ;
4110 extern ULong vgPlain_get_BB_profile(BBProfEntry *tops , UInt n_tops ) ;   4110 extern ULong vgPlain_get_BB_profile(BBProfEntry *tops , UInt n_tops ) ;
4111 extern VgHashTable vgPlain_HT_construct(HChar *name ) ;   4111 extern VgHashTable vgPlain_HT_construct(HChar *name ) ;
4112 extern Int vgPlain_HT_count_nodes(VgHashTable table ) ;   4112 extern Int vgPlain_HT_count_nodes(VgHashTable table ) ;
4113 extern void vgPlain_HT_add_node(VgHashTable t , void *node ) ;   4113 extern void vgPlain_HT_add_node(VgHashTable t , void *node ) ;
4114 extern void *vgPlain_HT_lookup(VgHashTable table , UWord key ) ;   4114 extern void *vgPlain_HT_lookup(VgHashTable table , UWord key ) ;
4115 extern void *vgPlain_HT_remove(VgHashTable table , UWord key ) ;   4115 extern void *vgPlain_HT_remove(VgHashTable table , UWord key ) ;
4116 extern VgHashNode **vgPlain_HT_to_array(VgHashTable t , UInt *n_elems ) ;   4116 extern VgHashNode **vgPlain_HT_to_array(VgHashTable t , UInt *n_elems ) ;
4117 extern void vgPlain_HT_ResetIter(VgHashTable table ) ;   4117 extern void vgPlain_HT_ResetIter(VgHashTable table ) ;
4118 extern void *vgPlain_HT_Next(VgHashTable table ) ;   4118 extern void *vgPlain_HT_Next(VgHashTable table ) ;
4119 extern void vgPlain_HT_destruct(VgHashTable t ) ;   4119 extern void vgPlain_HT_destruct(VgHashTable t ) ;
4120 extern  __attribute__((__noreturn__)) void vgPlain_exit(Int status ) ;   4120 extern  __attribute__((__noreturn__)) void vgPlain_exit(Int status ) ;
4121 extern  __attribute__((__noreturn__)) void vgPlain_tool_panic(Char *str ) ;   4121 extern  __attribute__((__noreturn__)) void vgPlain_tool_panic(Char *str ) ;
4122 extern  __attribute__((__noreturn__)) void vgPlain_assert_fail(Bool isCore ,   4122 extern  __attribute__((__noreturn__)) void vgPlain_assert_fail(Bool isCore ,
4123                                                                Char const   *expr ,   4123                                                                Char const   *expr ,
4124                                                                Char const   *file ,   4124                                                                Char const   *file ,
4125                                                                Int line ,   4125                                                                Int line ,
4126                                                                Char const   *fn ,   4126                                                                Char const   *fn ,
4127                                                                HChar const   *format   4127                                                                HChar const   *format
4128                                                                , ...) ;   4128                                                                , ...) ;
4129 extern  __attribute__((__noreturn__)) void vgPlain_core_panic(Char *str ) ;   4129 extern  __attribute__((__noreturn__)) void vgPlain_core_panic(Char *str ) ;
4130 extern  __attribute__((__noreturn__)) void vgPlain_core_panic_at(Char *str ,   4130 extern  __attribute__((__noreturn__)) void vgPlain_core_panic_at(Char *str ,
4131                                                                  UnwindStartRegs * ) ;   4131                                                                  UnwindStartRegs * ) ;
4132 extern  __attribute__((__noreturn__)) void vgPlain_unimplemented(Char *msg ) ;   4132 extern  __attribute__((__noreturn__)) void vgPlain_unimplemented(Char *msg ) ;
4133 extern void vgPlain_show_sched_status(void) ;   4133 extern void vgPlain_show_sched_status(void) ;
4134 extern Bool vgPlain_isspace(Char c ) ;   4134 extern Bool vgPlain_isspace(Char c ) ;
4135 extern Bool vgPlain_isdigit(Char c ) ;   4135 extern Bool vgPlain_isdigit(Char c ) ;
4136 extern Char vgPlain_tolower(Char c ) ;   4136 extern Char vgPlain_tolower(Char c ) ;
4137 extern Long vgPlain_strtoll10(Char *str , Char **endptr ) ;   4137 extern Long vgPlain_strtoll10(Char *str , Char **endptr ) ;
4138 extern Long vgPlain_strtoll16(Char *str , Char **endptr ) ;   4138 extern Long vgPlain_strtoll16(Char *str , Char **endptr ) ;
4139 extern ULong vgPlain_strtoull10(Char *str , Char **endptr ) ;   4139 extern ULong vgPlain_strtoull10(Char *str , Char **endptr ) ;
4140 extern ULong vgPlain_strtoull16(Char *str , Char **endptr ) ;   4140 extern ULong vgPlain_strtoull16(Char *str , Char **endptr ) ;
4141 extern double vgPlain_strtod(Char *str , Char **endptr ) ;   4141 extern double vgPlain_strtod(Char *str , Char **endptr ) ;
4142 extern SizeT vgPlain_strlen(Char const   *str ) ;   4142 extern SizeT vgPlain_strlen(Char const   *str ) ;
4143 extern Char *vgPlain_strcat(Char *dest , Char const   *src ) ;   4143 extern Char *vgPlain_strcat(Char *dest , Char const   *src ) ;
4144 extern Char *vgPlain_strncat(Char *dest , Char const   *src , SizeT n ) ;   4144 extern Char *vgPlain_strncat(Char *dest , Char const   *src , SizeT n ) ;
4145 extern Char *vgPlain_strpbrk(Char const   *s , Char const   *accpt ) ;   4145 extern Char *vgPlain_strpbrk(Char const   *s , Char const   *accpt ) ;
4146 extern Char *vgPlain_strcpy(Char *dest , Char const   *src ) ;   4146 extern Char *vgPlain_strcpy(Char *dest , Char const   *src ) ;
4147 extern Char *vgPlain_strncpy(Char *dest , Char const   *src , SizeT ndest ) ;   4147 extern Char *vgPlain_strncpy(Char *dest , Char const   *src , SizeT ndest ) ;
4148 extern Int vgPlain_strcmp(Char const   *s1 , Char const   *s2 ) ;   4148 extern Int vgPlain_strcmp(Char const   *s1 , Char const   *s2 ) ;
4149 extern Int vgPlain_strcasecmp(Char const   *s1 , Char const   *s2 ) ;   4149 extern Int vgPlain_strcasecmp(Char const   *s1 , Char const   *s2 ) ;
4150 extern Int vgPlain_strncmp(Char const   *s1 , Char const   *s2 , SizeT nmax ) ;   4150 extern Int vgPlain_strncmp(Char const   *s1 , Char const   *s2 , SizeT nmax ) ;
4151 extern Int vgPlain_strncasecmp(Char const   *s1 , Char const   *s2 , SizeT nmax ) ;   4151 extern Int vgPlain_strncasecmp(Char const   *s1 , Char const   *s2 , SizeT nmax ) ;
4152 extern Char *vgPlain_strstr(Char const   *haystack , Char *needle ) ;   4152 extern Char *vgPlain_strstr(Char const   *haystack , Char *needle ) ;
4153 extern Char *vgPlain_strcasestr(Char const   *haystack , Char *needle ) ;   4153 extern Char *vgPlain_strcasestr(Char const   *haystack , Char *needle ) ;
4154 extern Char *vgPlain_strchr(Char const   *s , Char c ) ;   4154 extern Char *vgPlain_strchr(Char const   *s , Char c ) ;
4155 extern Char *vgPlain_strrchr(Char const   *s , Char c ) ;   4155 extern Char *vgPlain_strrchr(Char const   *s , Char c ) ;
4156 extern SizeT vgPlain_strspn(Char const   *s , Char const   *accpt ) ;   4156 extern SizeT vgPlain_strspn(Char const   *s , Char const   *accpt ) ;
4157 extern SizeT vgPlain_strcspn(Char const   *s , char const   *reject ) ;   4157 extern SizeT vgPlain_strcspn(Char const   *s , char const   *reject ) ;
4158 extern Char *vgPlain_strtok_r(Char *s , Char const   *delim , Char **saveptr ) ;   4158 extern Char *vgPlain_strtok_r(Char *s , Char const   *delim , Char **saveptr ) ;
4159 extern Char *vgPlain_strtok(Char *s , Char const   *delim ) ;   4159 extern Char *vgPlain_strtok(Char *s , Char const   *delim ) ;
4160 extern Bool vgPlain_parse_Addr(UChar **ppc , Addr *result ) ;   4160 extern Bool vgPlain_parse_Addr(UChar **ppc , Addr *result ) ;
4161 extern void vgPlain_strncpy_safely(Char *dest , Char const   *src , SizeT ndest ) ;   4161 extern void vgPlain_strncpy_safely(Char *dest , Char const   *src , SizeT ndest ) ;
4162 extern void *vgPlain_memcpy(void *d , void const   *s , SizeT sz ) ;   4162 extern void *vgPlain_memcpy(void *d , void const   *s , SizeT sz ) ;
4163 extern void *vgPlain_memmove(void *d , void const   *s , SizeT sz ) ;   4163 extern void *vgPlain_memmove(void *d , void const   *s , SizeT sz ) ;
4164 extern void *vgPlain_memset(void *s , Int c , SizeT sz ) ;   4164 extern void *vgPlain_memset(void *s , Int c , SizeT sz ) ;
4165 extern Int vgPlain_memcmp(void const   *s1 , void const   *s2 , SizeT n ) ;   4165 extern Int vgPlain_memcmp(void const   *s1 , void const   *s2 , SizeT n ) ;
4166 __inline static void ( __attribute__((__always_inline__)) vgPlain_bzero_inline)(void *s ,   4166 __inline static void ( __attribute__((__always_inline__)) vgPlain_bzero_inline)(void *s ,
4167                                                                                 SizeT sz )   4167                                                                                 SizeT sz )
4168 {   4168 {
4169   UWord *p ;   4169   UWord *p ;
4170   UWord tmp ;   4170   UWord tmp ;
4171   UWord tmp___0 ;   4171   UWord tmp___0 ;
4172   UWord tmp___1 ;   4172   UWord tmp___1 ;
4173   UWord tmp___2 ;   4173   UWord tmp___2 ;
4174   UWord tmp___3 ;   4174   UWord tmp___3 ;
4175   UWord tmp___4 ;   4175   UWord tmp___4 ;
4176   UWord tmp___5 ;   4176   UWord tmp___5 ;
4177   UWord tmp___6 ;   4177   UWord tmp___6 ;
4178   UWord tmp___7 ;   4178   UWord tmp___7 ;
4179   UWord tmp___8 ;   4179   UWord tmp___8 ;
4180   UWord tmp___9 ;   4180   UWord tmp___9 ;
4181   UWord tmp___10 ;   4181   UWord tmp___10 ;
4182   UWord tmp___11 ;   4182   UWord tmp___11 ;
4183   UWord tmp___12 ;   4183   UWord tmp___12 ;
4184   UWord tmp___13 ;   4184   UWord tmp___13 ;
4185   UWord tmp___14 ;   4185   UWord tmp___14 ;
4186   UWord tmp___15 ;   4186   UWord tmp___15 ;
4187   UWord tmp___16 ;   4187   UWord tmp___16 ;
4188   UWord tmp___17 ;   4188   UWord tmp___17 ;
4189   UWord tmp___18 ;   4189   UWord tmp___18 ;
4190   UWord tmp___19 ;   4190   UWord tmp___19 ;
4191   UWord tmp___20 ;   4191   UWord tmp___20 ;
4192   UWord tmp___21 ;   4192   UWord tmp___21 ;
4193   UWord tmp___22 ;   4193   UWord tmp___22 ;
4194   UWord tmp___23 ;   4194   UWord tmp___23 ;
4195   UWord tmp___24 ;   4195   UWord tmp___24 ;
4196   UWord tmp___25 ;   4196   UWord tmp___25 ;
4197   UWord tmp___26 ;   4197   UWord tmp___26 ;
4198   long tmp___27 ;   4198   long tmp___27 ;
4199   long tmp___28 ;   4199   long tmp___28 ;
4200     4200  
4201   {   4201   {
4202   tmp___27 = __builtin_expect((long )(! (! (0UL == (sz & (Addr )(sizeof(UWord ) - 1U))))),   4202   tmp___27 = __builtin_expect((long )(! (! (0UL == (sz & (Addr )(sizeof(UWord ) - 1U))))),
4203                               1L);   4203                               1L);
4204   if (tmp___27) {   4204   if (tmp___27) {
4205     tmp___28 = __builtin_expect((long )(! (! (0UL == ((Addr )s & (Addr )(sizeof(UWord ) - 1U))))),   4205     tmp___28 = __builtin_expect((long )(! (! (0UL == ((Addr )s & (Addr )(sizeof(UWord ) - 1U))))),
4206                                 1L);   4206                                 1L);
4207     if (tmp___28) {   4207     if (tmp___28) {
4208       p = (UWord *)s;   4208       p = (UWord *)s;
4209       switch (sz / (SizeT )sizeof(UWord )) {   4209       switch (sz / (SizeT )sizeof(UWord )) {
4210       case 8UL:   4210       case 8UL:
4211       tmp___5 = 0UL;   4211       tmp___5 = 0UL;
4212       *(p + 7) = tmp___5;   4212       *(p + 7) = tmp___5;
4213       tmp___4 = tmp___5;   4213       tmp___4 = tmp___5;
4214       *(p + 6) = tmp___4;   4214       *(p + 6) = tmp___4;
4215       tmp___3 = tmp___4;   4215       tmp___3 = tmp___4;
4216       *(p + 5) = tmp___3;   4216       *(p + 5) = tmp___3;
4217       tmp___2 = tmp___3;   4217       tmp___2 = tmp___3;
4218       *(p + 4) = tmp___2;   4218       *(p + 4) = tmp___2;
4219       tmp___1 = tmp___2;   4219       tmp___1 = tmp___2;
4220       *(p + 3) = tmp___1;   4220       *(p + 3) = tmp___1;
4221       tmp___0 = tmp___1;   4221       tmp___0 = tmp___1;
4222       *(p + 2) = tmp___0;   4222       *(p + 2) = tmp___0;
4223       tmp = tmp___0;   4223       tmp = tmp___0;
4224       *(p + 1) = tmp;   4224       *(p + 1) = tmp;
4225       *(p + 0) = tmp;   4225       *(p + 0) = tmp;
4226       return;   4226       return;
4227       case 7UL:   4227       case 7UL:
4228       tmp___11 = 0UL;   4228       tmp___11 = 0UL;
4229       *(p + 6) = tmp___11;   4229       *(p + 6) = tmp___11;
4230       tmp___10 = tmp___11;   4230       tmp___10 = tmp___11;
4231       *(p + 5) = tmp___10;   4231       *(p + 5) = tmp___10;
4232       tmp___9 = tmp___10;   4232       tmp___9 = tmp___10;
4233       *(p + 4) = tmp___9;   4233       *(p + 4) = tmp___9;
4234       tmp___8 = tmp___9;   4234       tmp___8 = tmp___9;
4235       *(p + 3) = tmp___8;   4235       *(p + 3) = tmp___8;
4236       tmp___7 = tmp___8;   4236       tmp___7 = tmp___8;
4237       *(p + 2) = tmp___7;   4237       *(p + 2) = tmp___7;
4238       tmp___6 = tmp___7;   4238       tmp___6 = tmp___7;
4239       *(p + 1) = tmp___6;   4239       *(p + 1) = tmp___6;
4240       *(p + 0) = tmp___6;   4240       *(p + 0) = tmp___6;
4241       return;   4241       return;
4242       case 6UL:   4242       case 6UL:
4243       tmp___16 = 0UL;   4243       tmp___16 = 0UL;
4244       *(p + 5) = tmp___16;   4244       *(p + 5) = tmp___16;
4245       tmp___15 = tmp___16;   4245       tmp___15 = tmp___16;
4246       *(p + 4) = tmp___15;   4246       *(p + 4) = tmp___15;
4247       tmp___14 = tmp___15;   4247       tmp___14 = tmp___15;
4248       *(p + 3) = tmp___14;   4248       *(p + 3) = tmp___14;
4249       tmp___13 = tmp___14;   4249       tmp___13 = tmp___14;
4250       *(p + 2) = tmp___13;   4250       *(p + 2) = tmp___13;
4251       tmp___12 = tmp___13;   4251       tmp___12 = tmp___13;
4252       *(p + 1) = tmp___12;   4252       *(p + 1) = tmp___12;
4253       *(p + 0) = tmp___12;   4253       *(p + 0) = tmp___12;
4254       return;   4254       return;
4255       case 5UL:   4255       case 5UL:
4256       tmp___20 = 0UL;   4256       tmp___20 = 0UL;
4257       *(p + 4) = tmp___20;   4257       *(p + 4) = tmp___20;
4258       tmp___19 = tmp___20;   4258       tmp___19 = tmp___20;
4259       *(p + 3) = tmp___19;   4259       *(p + 3) = tmp___19;
4260       tmp___18 = tmp___19;   4260       tmp___18 = tmp___19;
4261       *(p + 2) = tmp___18;   4261       *(p + 2) = tmp___18;
4262       tmp___17 = tmp___18;   4262       tmp___17 = tmp___18;
4263       *(p + 1) = tmp___17;   4263       *(p + 1) = tmp___17;
4264       *(p + 0) = tmp___17;   4264       *(p + 0) = tmp___17;
4265       return;   4265       return;
4266       case 4UL:   4266       case 4UL:
4267       tmp___23 = 0UL;   4267       tmp___23 = 0UL;
4268       *(p + 3) = tmp___23;   4268       *(p + 3) = tmp___23;
4269       tmp___22 = tmp___23;   4269       tmp___22 = tmp___23;
4270       *(p + 2) = tmp___22;   4270       *(p + 2) = tmp___22;
4271       tmp___21 = tmp___22;   4271       tmp___21 = tmp___22;
4272       *(p + 1) = tmp___21;   4272       *(p + 1) = tmp___21;
4273       *(p + 0) = tmp___21;   4273       *(p + 0) = tmp___21;
4274       return;   4274       return;
4275       case 3UL:   4275       case 3UL:
4276       tmp___25 = 0UL;   4276       tmp___25 = 0UL;
4277       *(p + 2) = tmp___25;   4277       *(p + 2) = tmp___25;
4278       tmp___24 = tmp___25;   4278       tmp___24 = tmp___25;
4279       *(p + 1) = tmp___24;   4279       *(p + 1) = tmp___24;
4280       *(p + 0) = tmp___24;   4280       *(p + 0) = tmp___24;
4281       return;   4281       return;
4282       case 2UL:   4282       case 2UL:
4283       tmp___26 = 0UL;   4283       tmp___26 = 0UL;
4284       *(p + 1) = tmp___26;   4284       *(p + 1) = tmp___26;
4285       *(p + 0) = tmp___26;   4285       *(p + 0) = tmp___26;
4286       return;   4286       return;
4287       case 1UL:   4287       case 1UL:
4288       *(p + 0) = 0UL;   4288       *(p + 0) = 0UL;
4289       return;   4289       return;
4290       case 0UL:   4290       case 0UL:
4291       return;   4291       return;
4292       default:   4292       default:
4293       break;   4293       break;
4294       }   4294       }
4295     } else {   4295     } else {
4296     4296  
4297     }   4297     }
4298   } else {   4298   } else {
4299     4299  
4300   }   4300   }
4301   vgPlain_memset(s, 0, sz);   4301   vgPlain_memset(s, 0, sz);
4302   return;   4302   return;
4303 }   4303 }
4304 }   4304 }
4305 extern void vgPlain_ssort(void *base , SizeT nmemb , SizeT size ,   4305 extern void vgPlain_ssort(void *base , SizeT nmemb , SizeT size ,
4306                           Int (*compar)(void * , void * ) ) ;   4306                           Int (*compar)(void * , void * ) ) ;
4307 extern Int vgPlain_log2(UInt x ) ;   4307 extern Int vgPlain_log2(UInt x ) ;
4308 extern Int vgPlain_log2_64(ULong x ) ;   4308 extern Int vgPlain_log2_64(ULong x ) ;
4309 extern UInt vgPlain_random(UInt *pSeed ) ;   4309 extern UInt vgPlain_random(UInt *pSeed ) ;
4310 extern Int vgPlain_sigprocmask(Int how , vki_sigset_t const   *set ,   4310 extern Int vgPlain_sigprocmask(Int how , vki_sigset_t const   *set ,
4311                                vki_sigset_t *oldset ) ;   4311                                vki_sigset_t *oldset ) ;
4312 extern Int vgPlain_sigfillset(vki_sigset_t *set ) ;   4312 extern Int vgPlain_sigfillset(vki_sigset_t *set ) ;
4313 extern Int vgPlain_sigemptyset(vki_sigset_t *set ) ;   4313 extern Int vgPlain_sigemptyset(vki_sigset_t *set ) ;
4314 extern Bool vgPlain_isfullsigset(vki_sigset_t const   *set ) ;   4314 extern Bool vgPlain_isfullsigset(vki_sigset_t const   *set ) ;
4315 extern Bool vgPlain_isemptysigset(vki_sigset_t const   *set ) ;   4315 extern Bool vgPlain_isemptysigset(vki_sigset_t const   *set ) ;
4316 extern Bool vgPlain_iseqsigset(vki_sigset_t const   *set1 ,   4316 extern Bool vgPlain_iseqsigset(vki_sigset_t const   *set1 ,
4317                                vki_sigset_t const   *set2 ) ;   4317                                vki_sigset_t const   *set2 ) ;
4318 extern Int vgPlain_sigaddset(vki_sigset_t *set , Int signum ) ;   4318 extern Int vgPlain_sigaddset(vki_sigset_t *set , Int signum ) ;
4319 extern Int vgPlain_sigdelset(vki_sigset_t *set , Int signum ) ;   4319 extern Int vgPlain_sigdelset(vki_sigset_t *set , Int signum ) ;
4320 extern Int vgPlain_sigismember(vki_sigset_t const   *set , Int signum ) ;   4320 extern Int vgPlain_sigismember(vki_sigset_t const   *set , Int signum ) ;
4321 extern void vgPlain_sigaddset_from_set(vki_sigset_t *dst , vki_sigset_t *src ) ;   4321 extern void vgPlain_sigaddset_from_set(vki_sigset_t *dst , vki_sigset_t *src ) ;
4322 extern void vgPlain_sigdelset_from_set(vki_sigset_t *dst , vki_sigset_t *src ) ;   4322 extern void vgPlain_sigdelset_from_set(vki_sigset_t *dst , vki_sigset_t *src ) ;
4323 extern void vgPlain_sigintersectset(vki_sigset_t *dst , vki_sigset_t *src ) ;   4323 extern void vgPlain_sigintersectset(vki_sigset_t *dst , vki_sigset_t *src ) ;
4324 extern void vgPlain_sigcomplementset(vki_sigset_t *dst , vki_sigset_t *src ) ;   4324 extern void vgPlain_sigcomplementset(vki_sigset_t *dst , vki_sigset_t *src ) ;
4325 extern Int vgPlain_sigaction(Int signum , vki_sigaction_toK_t const   *act ,   4325 extern Int vgPlain_sigaction(Int signum , vki_sigaction_toK_t const   *act ,
4326                              vki_sigaction_fromK_t *oldact ) ;   4326                              vki_sigaction_fromK_t *oldact ) ;
4327 extern void vgPlain_convert_sigaction_fromK_to_toK(vki_sigaction_fromK_t * ,   4327 extern void vgPlain_convert_sigaction_fromK_to_toK(vki_sigaction_fromK_t * ,
4328                                                    vki_sigaction_toK_t * ) ;   4328                                                    vki_sigaction_toK_t * ) ;
4329 extern Int vgPlain_kill(Int pid , Int signo ) ;   4329 extern Int vgPlain_kill(Int pid , Int signo ) ;
4330 extern Int vgPlain_tkill(Int lwpid , Int signo ) ;   4330 extern Int vgPlain_tkill(Int lwpid , Int signo ) ;
4331 extern Int vgPlain_sigtimedwait_zero(vki_sigset_t const   * , vki_siginfo_t * ) ;   4331 extern Int vgPlain_sigtimedwait_zero(vki_sigset_t const   * , vki_siginfo_t * ) ;
4332 extern Addr vgPlain_get_IP(ThreadId tid ) ;   4332 extern Addr vgPlain_get_IP(ThreadId tid ) ;
4333 extern Addr vgPlain_get_SP(ThreadId tid ) ;   4333 extern Addr vgPlain_get_SP(ThreadId tid ) ;
4334 extern void vgPlain_get_shadow_regs_area(ThreadId tid , UChar *dst ,   4334 extern void vgPlain_get_shadow_regs_area(ThreadId tid , UChar *dst ,
4335                                          Int shadowNo , PtrdiffT offset ,   4335                                          Int shadowNo , PtrdiffT offset ,
4336                                          SizeT size ) ;   4336                                          SizeT size ) ;
4337 extern void vgPlain_set_shadow_regs_area(ThreadId tid , Int shadowNo ,   4337 extern void vgPlain_set_shadow_regs_area(ThreadId tid , Int shadowNo ,
4338                                          PtrdiffT offset , SizeT size ,   4338                                          PtrdiffT offset , SizeT size ,
4339                                          UChar const   *src ) ;   4339                                          UChar const   *src ) ;
4340 extern void vgPlain_set_syscall_return_shadows(ThreadId tid , UWord s1res ,   4340 extern void vgPlain_set_syscall_return_shadows(ThreadId tid , UWord s1res ,
4341                                                UWord s2res , UWord s1err ,   4341                                                UWord s2res , UWord s1err ,
4342                                                UWord s2err ) ;   4342                                                UWord s2err ) ;
4343 extern void vgPlain_apply_to_GP_regs(void (*f)(UWord val ) ) ;   4343 extern void vgPlain_apply_to_GP_regs(void (*f)(UWord val ) ) ;
4344 extern void vgPlain_thread_stack_reset_iter(ThreadId *tid ) ;   4344 extern void vgPlain_thread_stack_reset_iter(ThreadId *tid ) ;
4345 extern Bool vgPlain_thread_stack_next(ThreadId *tid , Addr *stack_min ,   4345 extern Bool vgPlain_thread_stack_next(ThreadId *tid , Addr *stack_min ,
4346                                       Addr *stack_max ) ;   4346                                       Addr *stack_max ) ;
4347 extern Addr vgPlain_thread_get_stack_max(ThreadId tid ) ;   4347 extern Addr vgPlain_thread_get_stack_max(ThreadId tid ) ;
4348 extern SizeT vgPlain_thread_get_stack_size(ThreadId tid ) ;   4348 extern SizeT vgPlain_thread_get_stack_size(ThreadId tid ) ;
4349 extern Addr vgPlain_thread_get_altstack_min(ThreadId tid ) ;   4349 extern Addr vgPlain_thread_get_altstack_min(ThreadId tid ) ;
4350 extern SizeT vgPlain_thread_get_altstack_size(ThreadId tid ) ;   4350 extern SizeT vgPlain_thread_get_altstack_size(ThreadId tid ) ;
4351 extern void *vgPlain_fnptr_to_fnentry(void * ) ;   4351 extern void *vgPlain_fnptr_to_fnentry(void * ) ;
4352 extern Bool vgPlain_get_filename(Addr a , Char *filename , Int n_filename ) ;   4352 extern Bool vgPlain_get_filename(Addr a , Char *filename , Int n_filename ) ;
4353 extern Bool vgPlain_get_fnname(Addr a , Char *fnname , Int n_fnname ) ;   4353 extern Bool vgPlain_get_fnname(Addr a , Char *fnname , Int n_fnname ) ;
4354 extern Bool vgPlain_get_linenum(Addr a , UInt *linenum ) ;   4354 extern Bool vgPlain_get_linenum(Addr a , UInt *linenum ) ;
4355 extern Bool vgPlain_get_fnname_w_offset(Addr a , Char *fnname , Int n_fnname ) ;   4355 extern Bool vgPlain_get_fnname_w_offset(Addr a , Char *fnname , Int n_fnname ) ;
4356 extern Bool vgPlain_get_filename_linenum(Addr a , Char *filename ,   4356 extern Bool vgPlain_get_filename_linenum(Addr a , Char *filename ,
4357                                          Int n_filename , Char *dirname ,   4357                                          Int n_filename , Char *dirname ,
4358                                          Int n_dirname ,   4358                                          Int n_dirname ,
4359                                          Bool *dirname_available ,   4359                                          Bool *dirname_available ,
4360                                          UInt *linenum ) ;   4360                                          UInt *linenum ) ;
4361 extern Bool vgPlain_get_fnname_if_entry(Addr a , Char *fnname , Int n_fnname ) ;   4361 extern Bool vgPlain_get_fnname_if_entry(Addr a , Char *fnname , Int n_fnname ) ;
4362 extern Vg_FnNameKind vgPlain_get_fnname_kind(Char *name ) ;   4362 extern Vg_FnNameKind vgPlain_get_fnname_kind(Char *name ) ;
4363 extern Vg_FnNameKind vgPlain_get_fnname_kind_from_IP(Addr ip ) ;   4363 extern Vg_FnNameKind vgPlain_get_fnname_kind_from_IP(Addr ip ) ;
4364 extern Bool vgPlain_get_datasym_and_offset(Addr data_addr , Char *dname ,   4364 extern Bool vgPlain_get_datasym_and_offset(Addr data_addr , Char *dname ,
4365                                            Int n_dname , PtrdiffT *offset ) ;   4365                                            Int n_dname , PtrdiffT *offset ) ;
4366 extern Bool vgPlain_get_data_description(void *dname1v , void *dname2v ,   4366 extern Bool vgPlain_get_data_description(void *dname1v , void *dname2v ,
4367                                          Addr data_addr ) ;   4367                                          Addr data_addr ) ;
4368 extern Bool vgPlain_get_objname(Addr a , Char *objname , Int n_objname ) ;   4368 extern Bool vgPlain_get_objname(Addr a , Char *objname , Int n_objname ) ;
4369 extern Char *vgPlain_describe_IP(Addr eip , Char *buf , Int n_buf ) ;   4369 extern Char *vgPlain_describe_IP(Addr eip , Char *buf , Int n_buf ) ;
4370 extern void *vgPlain_di_get_stack_blocks_at_ip(Addr ip , Bool arrays_only ) ;   4370 extern void *vgPlain_di_get_stack_blocks_at_ip(Addr ip , Bool arrays_only ) ;
4371 extern void *vgPlain_di_get_global_blocks_from_dihandle(ULong di_handle ,   4371 extern void *vgPlain_di_get_global_blocks_from_dihandle(ULong di_handle ,
4372                                                         Bool arrays_only ) ;   4372                                                         Bool arrays_only ) ;
4373 extern DebugInfo *vgPlain_find_DebugInfo(Addr a ) ;   4373 extern DebugInfo *vgPlain_find_DebugInfo(Addr a ) ;
4374 extern Addr vgPlain_DebugInfo_get_text_avma(DebugInfo const   *di ) ;   4374 extern Addr vgPlain_DebugInfo_get_text_avma(DebugInfo const   *di ) ;
4375 extern SizeT vgPlain_DebugInfo_get_text_size(DebugInfo const   *di ) ;   4375 extern SizeT vgPlain_DebugInfo_get_text_size(DebugInfo const   *di ) ;
4376 extern Addr vgPlain_DebugInfo_get_plt_avma(DebugInfo const   *di ) ;   4376 extern Addr vgPlain_DebugInfo_get_plt_avma(DebugInfo const   *di ) ;
4377 extern SizeT vgPlain_DebugInfo_get_plt_size(DebugInfo const   *di ) ;   4377 extern SizeT vgPlain_DebugInfo_get_plt_size(DebugInfo const   *di ) ;
4378 extern Addr vgPlain_DebugInfo_get_gotplt_avma(DebugInfo const   *di ) ;   4378 extern Addr vgPlain_DebugInfo_get_gotplt_avma(DebugInfo const   *di ) ;
4379 extern SizeT vgPlain_DebugInfo_get_gotplt_size(DebugInfo const   *di ) ;   4379 extern SizeT vgPlain_DebugInfo_get_gotplt_size(DebugInfo const   *di ) ;
4380 extern UChar const   *vgPlain_DebugInfo_get_soname(DebugInfo const   *di ) ;   4380 extern UChar const   *vgPlain_DebugInfo_get_soname(DebugInfo const   *di ) ;
4381 extern UChar const   *vgPlain_DebugInfo_get_filename(DebugInfo const   *di ) ;   4381 extern UChar const   *vgPlain_DebugInfo_get_filename(DebugInfo const   *di ) ;
4382 extern PtrdiffT vgPlain_DebugInfo_get_text_bias(DebugInfo const   *di ) ;   4382 extern PtrdiffT vgPlain_DebugInfo_get_text_bias(DebugInfo const   *di ) ;
4383 extern DebugInfo const   *vgPlain_next_DebugInfo(DebugInfo const   *di ) ;   4383 extern DebugInfo const   *vgPlain_next_DebugInfo(DebugInfo const   *di ) ;
4384 extern Int vgPlain_DebugInfo_syms_howmany(DebugInfo const   *di ) ;   4384 extern Int vgPlain_DebugInfo_syms_howmany(DebugInfo const   *di ) ;
4385 extern void vgPlain_DebugInfo_syms_getidx(DebugInfo const   *di , Int idx ,   4385 extern void vgPlain_DebugInfo_syms_getidx(DebugInfo const   *di , Int idx ,
4386                                           Addr *avma , Addr *tocptr ,   4386                                           Addr *avma , Addr *tocptr ,
4387                                           UInt *size , HChar **name ,   4387                                           UInt *size , HChar **name ,
4388                                           Bool *isText , Bool *isIFunc ) ;   4388                                           Bool *isText , Bool *isIFunc ) ;
4389 extern HChar const   *vgPlain_pp_SectKind(VgSectKind kind ) ;   4389 extern HChar const   *vgPlain_pp_SectKind(VgSectKind kind ) ;
4390 extern VgSectKind vgPlain_DebugInfo_sect_kind(UChar *name , SizeT n_name ,   4390 extern VgSectKind vgPlain_DebugInfo_sect_kind(UChar *name , SizeT n_name ,
4391                                               Addr a ) ;   4391                                               Addr a ) ;
4392 extern ThreadId vgPlain_alloc_ThreadState(void) ;   4392 extern ThreadId vgPlain_alloc_ThreadState(void) ;
4393 extern void vgPlain_exit_thread(ThreadId tid ) ;   4393 extern void vgPlain_exit_thread(ThreadId tid ) ;
4394 extern void vgPlain_get_thread_out_of_syscall(ThreadId tid ) ;   4394 extern void vgPlain_get_thread_out_of_syscall(ThreadId tid ) ;
4395 extern void vgPlain_nuke_all_threads_except(ThreadId me ,   4395 extern void vgPlain_nuke_all_threads_except(ThreadId me ,
4396                                             VgSchedReturnCode reason ) ;   4396                                             VgSchedReturnCode reason ) ;
4397 extern void vgPlain_acquire_BigLock(ThreadId tid , HChar *who ) ;   4397 extern void vgPlain_acquire_BigLock(ThreadId tid , HChar *who ) ;
4398 extern void vgPlain_acquire_BigLock_LL(HChar *who ) ;   4398 extern void vgPlain_acquire_BigLock_LL(HChar *who ) ;
4399 extern void vgPlain_release_BigLock(ThreadId tid , ThreadStatus state ,   4399 extern void vgPlain_release_BigLock(ThreadId tid , ThreadStatus state ,
4400                                     HChar *who ) ;   4400                                     HChar *who ) ;
4401 extern void vgPlain_release_BigLock_LL(HChar *who ) ;   4401 extern void vgPlain_release_BigLock_LL(HChar *who ) ;
4402 extern void vgPlain_vg_yield(void) ;   4402 extern void vgPlain_vg_yield(void) ;
4403 extern VgSchedReturnCode vgPlain_scheduler(ThreadId tid ) ;   4403 extern VgSchedReturnCode vgPlain_scheduler(ThreadId tid ) ;
4404 extern ThreadId vgPlain_scheduler_init_phase1(void) ;   4404 extern ThreadId vgPlain_scheduler_init_phase1(void) ;
4405 extern void vgPlain_scheduler_init_phase2(ThreadId main_tid , Addr clstack_end ,   4405 extern void vgPlain_scheduler_init_phase2(ThreadId main_tid , Addr clstack_end ,
4406                                           SizeT clstack_size ) ;   4406                                           SizeT clstack_size ) ;
4407 extern void vgPlain_disable_vgdb_poll(void) ;   4407 extern void vgPlain_disable_vgdb_poll(void) ;
4408 extern void vgPlain_force_vgdb_poll(void) ;   4408 extern void vgPlain_force_vgdb_poll(void) ;
4409 extern ULong vgPlain_bbs_done(void) ;   4409 extern ULong vgPlain_bbs_done(void) ;
4410 extern void vgPlain_print_scheduler_stats(void) ;   4410 extern void vgPlain_print_scheduler_stats(void) ;
4411 extern Bool vgPlain_in_generated_code ;   4411 extern Bool vgPlain_in_generated_code ;
4412 extern void vgPlain_sanity_check_general(Bool force_expensive ) ;   4412 extern void vgPlain_sanity_check_general(Bool force_expensive ) ;
4413 extern void vgPlain_main_thread_wrapper_NORETURN(ThreadId tid ) ;   4413 extern void vgPlain_main_thread_wrapper_NORETURN(ThreadId tid ) ;
4414 extern void vgPlain_client_syscall(ThreadId tid , UInt trc ) ;   4414 extern void vgPlain_client_syscall(ThreadId tid , UInt trc ) ;
4415 extern void vgPlain_post_syscall(ThreadId tid ) ;   4415 extern void vgPlain_post_syscall(ThreadId tid ) ;
4416 extern void vgPlain_clear_syscallInfo(Int tid ) ;   4416 extern void vgPlain_clear_syscallInfo(Int tid ) ;
4417 extern void vgPlain_fixup_guest_state_after_syscall_interrupted(ThreadId tid ,   4417 extern void vgPlain_fixup_guest_state_after_syscall_interrupted(ThreadId tid ,
4418                                                                 Addr ip ,   4418                                                                 Addr ip ,
4419                                                                 SysRes sysret ,   4419                                                                 SysRes sysret ,
4420                                                                 Bool restart ) ;   4420                                                                 Bool restart ) ;
4421 extern void vgPlain_reap_threads(ThreadId self ) ;   4421 extern void vgPlain_reap_threads(ThreadId self ) ;
4422 extern void vgPlain_cleanup_thread(ThreadArchState * ) ;   4422 extern void vgPlain_cleanup_thread(ThreadArchState * ) ;
4423 extern void vgPlain_init_preopened_fds(void) ;   4423 extern void vgPlain_init_preopened_fds(void) ;
4424 extern void vgPlain_show_open_fds(void) ;   4424 extern void vgPlain_show_open_fds(void) ;
4425 extern void (*vgPlain_address_of_m_main_shutdown_actions_NORETURN)(ThreadId  ,   4425 extern void (*vgPlain_address_of_m_main_shutdown_actions_NORETURN)(ThreadId  ,
4426                                                                    VgSchedReturnCode  ) ;   4426                                                                    VgSchedReturnCode  ) ;
4427 extern XArray *vgPlain_newXA(void *(*alloc_fn)(HChar * , SizeT  ) , HChar *cc ,   4427 extern XArray *vgPlain_newXA(void *(*alloc_fn)(HChar * , SizeT  ) , HChar *cc ,
4428                              void (*free_fn)(void * ) , Word elemSzB ) ;   4428                              void (*free_fn)(void * ) , Word elemSzB ) ;
4429 extern void vgPlain_deleteXA(XArray * ) ;   4429 extern void vgPlain_deleteXA(XArray * ) ;
4430 extern void vgPlain_setCmpFnXA(XArray * , Int (*compar)(void * , void * ) ) ;   4430 extern void vgPlain_setCmpFnXA(XArray * , Int (*compar)(void * , void * ) ) ;
4431 extern Word vgPlain_addToXA(XArray * , void *elem ) ;   4431 extern Word vgPlain_addToXA(XArray * , void *elem ) ;
4432 extern Word vgPlain_addBytesToXA(XArray *xao , void *bytesV , Word nbytes ) ;   4432 extern Word vgPlain_addBytesToXA(XArray *xao , void *bytesV , Word nbytes ) ;
4433 extern void vgPlain_sortXA(XArray * ) ;   4433 extern void vgPlain_sortXA(XArray * ) ;
4434 extern Bool vgPlain_lookupXA(XArray * , void *key , Word *first , Word *last ) ;   4434 extern Bool vgPlain_lookupXA(XArray * , void *key , Word *first , Word *last ) ;
4435 extern Bool vgPlain_lookupXA_UNSAFE(XArray *xao , void *key , Word *first ,   4435 extern Bool vgPlain_lookupXA_UNSAFE(XArray *xao , void *key , Word *first ,
4436                                     Word *last , Int (*cmpFn)(void * , void * ) ) ;   4436                                     Word *last , Int (*cmpFn)(void * , void * ) ) ;
4437 extern Word vgPlain_sizeXA(XArray * ) ;   4437 extern Word vgPlain_sizeXA(XArray * ) ;
4438 extern void *vgPlain_indexXA(XArray * , Word  ) ;   4438 extern void *vgPlain_indexXA(XArray * , Word  ) ;
4439 extern void vgPlain_dropTailXA(XArray * , Word  ) ;   4439 extern void vgPlain_dropTailXA(XArray * , Word  ) ;
4440 extern void vgPlain_dropHeadXA(XArray * , Word  ) ;   4440 extern void vgPlain_dropHeadXA(XArray * , Word  ) ;
4441 extern XArray *vgPlain_cloneXA(HChar *cc , XArray *xa ) ;   4441 extern XArray *vgPlain_cloneXA(HChar *cc , XArray *xa ) ;
4442 extern void vgPlain_getContentsXA_UNSAFE(XArray *sr , void **ctsP , Word *usedP ) ;   4442 extern void vgPlain_getContentsXA_UNSAFE(XArray *sr , void **ctsP , Word *usedP ) ;
4443 extern void ( /* format attribute */  vgPlain_xaprintf)(XArray *dst ,   4443 extern void ( /* format attribute */  vgPlain_xaprintf)(XArray *dst ,
4444                                                         HChar const   *format   4444                                                         HChar const   *format
4445                                                         , ...) ;   4445                                                         , ...) ;
4446 extern void vgPlain_xaprintf_no_f_c(XArray *dst , HChar const   *format  , ...) ;   4446 extern void vgPlain_xaprintf_no_f_c(XArray *dst , HChar const   *format  , ...) ;
4447 extern XArray *vgPlain_args_for_client ;   4447 extern XArray *vgPlain_args_for_client ;
4448 extern XArray *vgPlain_args_for_valgrind ;   4448 extern XArray *vgPlain_args_for_valgrind ;
4449 extern Int vgPlain_args_for_valgrind_noexecpass ;   4449 extern Int vgPlain_args_for_valgrind_noexecpass ;
4450 extern HChar const   *vgPlain_args_the_exename ;   4450 extern HChar const   *vgPlain_args_the_exename ;
4451 extern Addr vgPlain_clstk_base ;   4451 extern Addr vgPlain_clstk_base ;
4452 extern Addr vgPlain_clstk_end ;   4452 extern Addr vgPlain_clstk_end ;
4453 extern UWord vgPlain_clstk_id ;   4453 extern UWord vgPlain_clstk_id ;
4454 extern Addr vgPlain_brk_base ;   4454 extern Addr vgPlain_brk_base ;
4455 extern Addr vgPlain_brk_limit ;   4455 extern Addr vgPlain_brk_limit ;
4456 extern Int vgPlain_cl_exec_fd ;   4456 extern Int vgPlain_cl_exec_fd ;
4457 extern Int vgPlain_cl_cmdline_fd ;   4457 extern Int vgPlain_cl_cmdline_fd ;
4458 extern struct vki_rlimit vgPlain_client_rlimit_data ;   4458 extern struct vki_rlimit vgPlain_client_rlimit_data ;
4459 extern struct vki_rlimit vgPlain_client_rlimit_stack ;   4459 extern struct vki_rlimit vgPlain_client_rlimit_stack ;
4460 extern HChar *vgPlain_name_of_launcher ;   4460 extern HChar *vgPlain_name_of_launcher ;
4461 extern Int vgPlain_fd_soft_limit ;   4461 extern Int vgPlain_fd_soft_limit ;
4462 extern Int vgPlain_fd_hard_limit ;   4462 extern Int vgPlain_fd_hard_limit ;
4463 extern Addr vgPlain_client___libc_freeres_wrapper ;   4463 extern Addr vgPlain_client___libc_freeres_wrapper ;
4464 extern Addr vgPlain_client__dl_sysinfo_int80 ;   4464 extern Addr vgPlain_client__dl_sysinfo_int80 ;
4465 extern ExeContext *vgPlain_record_ExeContext(ThreadId tid , Word first_ip_delta ) ;   4465 extern ExeContext *vgPlain_record_ExeContext(ThreadId tid , Word first_ip_delta ) ;
4466 extern ExeContext *vgPlain_record_depth_1_ExeContext(ThreadId tid ) ;   4466 extern ExeContext *vgPlain_record_depth_1_ExeContext(ThreadId tid ) ;
4467 extern void vgPlain_apply_ExeContext(void (*action)(UInt n , Addr ip ) ,   4467 extern void vgPlain_apply_ExeContext(void (*action)(UInt n , Addr ip ) ,
4468                                      ExeContext *ec , UInt n_ips ) ;   4468                                      ExeContext *ec , UInt n_ips ) ;
4469 extern Bool vgPlain_eq_ExeContext(VgRes res , ExeContext *e1 , ExeContext *e2 ) ;   4469 extern Bool vgPlain_eq_ExeContext(VgRes res , ExeContext *e1 , ExeContext *e2 ) ;
4470 extern void vgPlain_pp_ExeContext(ExeContext *ec ) ;   4470 extern void vgPlain_pp_ExeContext(ExeContext *ec ) ;
4471 extern UInt vgPlain_get_ECU_from_ExeContext(ExeContext *e ) ;   4471 extern UInt vgPlain_get_ECU_from_ExeContext(ExeContext *e ) ;
4472 extern Int vgPlain_get_ExeContext_n_ips(ExeContext *e ) ;   4472 extern Int vgPlain_get_ExeContext_n_ips(ExeContext *e ) ;
4473 extern ExeContext *vgPlain_get_ExeContext_from_ECU(UInt uniq ) ;   4473 extern ExeContext *vgPlain_get_ExeContext_from_ECU(UInt uniq ) ;
4474 extern ExeContext *vgPlain_make_depth_1_ExeContext_from_Addr(Addr a ) ;   4474 extern ExeContext *vgPlain_make_depth_1_ExeContext_from_Addr(Addr a ) ;
4475 __inline static Bool vgPlain_is_plausible_ECU(UInt ecu )   4475 __inline static Bool vgPlain_is_plausible_ECU(UInt ecu )
4476 {   4476 {
4477   int tmp ;   4477   int tmp ;
4478     4478  
4479   {   4479   {
4480   if (ecu > 0U) {   4480   if (ecu > 0U) {
4481     if ((ecu & 3U) == 0U) {   4481     if ((ecu & 3U) == 0U) {
4482       tmp = 1;   4482       tmp = 1;
4483     } else {   4483     } else {
4484       tmp = 0;   4484       tmp = 0;
4485     }   4485     }
4486   } else {   4486   } else {
4487     tmp = 0;   4487     tmp = 0;
4488   }   4488   }
4489   return ((Bool )tmp);   4489   return ((Bool )tmp);
4490 }   4490 }
4491 }   4491 }
4492 extern ExeContext *vgPlain_make_ExeContext_from_StackTrace(Addr *ips ,   4492 extern ExeContext *vgPlain_make_ExeContext_from_StackTrace(Addr *ips ,
4493                                                            UInt n_ips ) ;   4493                                                            UInt n_ips ) ;
4494 extern ExeContext *vgPlain_get_error_where(Error *err ) ;   4494 extern ExeContext *vgPlain_get_error_where(Error *err ) ;
4495 extern ErrorKind vgPlain_get_error_kind(Error *err ) ;   4495 extern ErrorKind vgPlain_get_error_kind(Error *err ) ;
4496 extern Addr vgPlain_get_error_address(Error *err ) ;   4496 extern Addr vgPlain_get_error_address(Error *err ) ;
4497 extern Char *vgPlain_get_error_string(Error *err ) ;   4497 extern Char *vgPlain_get_error_string(Error *err ) ;
4498 extern void *vgPlain_get_error_extra(Error *err ) ;   4498 extern void *vgPlain_get_error_extra(Error *err ) ;
4499 extern void vgPlain_maybe_record_error(ThreadId tid , ErrorKind ekind , Addr a ,   4499 extern void vgPlain_maybe_record_error(ThreadId tid , ErrorKind ekind , Addr a ,
4500                                        Char *s , void *extra ) ;   4500                                        Char *s , void *extra ) ;
4501 extern Bool vgPlain_unique_error(ThreadId tid , ErrorKind ekind , Addr a ,   4501 extern Bool vgPlain_unique_error(ThreadId tid , ErrorKind ekind , Addr a ,
4502                                  Char *s , void *extra , ExeContext *where ,   4502                                  Char *s , void *extra , ExeContext *where ,
4503                                  Bool print_error , Bool allow_GDB_attach ,   4503                                  Bool print_error , Bool allow_GDB_attach ,
4504                                  Bool count_error ) ;   4504                                  Bool count_error ) ;
4505 extern Bool vgPlain_get_line(Int fd , Char **bufpp , SizeT *nBufp , Int *lineno ) ;   4505 extern Bool vgPlain_get_line(Int fd , Char **bufpp , SizeT *nBufp , Int *lineno ) ;
4506 extern SuppKind vgPlain_get_supp_kind(Supp *su ) ;   4506 extern SuppKind vgPlain_get_supp_kind(Supp *su ) ;
4507 extern Char *vgPlain_get_supp_string(Supp *su ) ;   4507 extern Char *vgPlain_get_supp_string(Supp *su ) ;
4508 extern void *vgPlain_get_supp_extra(Supp *su ) ;   4508 extern void *vgPlain_get_supp_extra(Supp *su ) ;
4509 extern void vgPlain_set_supp_kind(Supp *su , SuppKind suppkind ) ;   4509 extern void vgPlain_set_supp_kind(Supp *su , SuppKind suppkind ) ;
4510 extern void vgPlain_set_supp_string(Supp *su , Char *string ) ;   4510 extern void vgPlain_set_supp_string(Supp *su , Char *string ) ;
4511 extern void vgPlain_set_supp_extra(Supp *su , void *extra ) ;   4511 extern void vgPlain_set_supp_extra(Supp *su , void *extra ) ;
4512 extern void vgPlain_load_suppressions(void) ;   4512 extern void vgPlain_load_suppressions(void) ;
4513 extern void vgPlain_show_all_errors(Int verbosity , Bool xml ) ;   4513 extern void vgPlain_show_all_errors(Int verbosity , Bool xml ) ;
4514 extern void vgPlain_show_last_error(void) ;   4514 extern void vgPlain_show_last_error(void) ;
4515 extern void vgPlain_show_error_counts_as_XML(void) ;   4515 extern void vgPlain_show_error_counts_as_XML(void) ;
4516 extern Bool vgPlain_is_action_requested(Char *action , Bool *clo ) ;   4516 extern Bool vgPlain_is_action_requested(Char *action , Bool *clo ) ;
4517 extern Bool vgPlain_showing_core_errors(void) ;   4517 extern Bool vgPlain_showing_core_errors(void) ;
4518 extern UInt vgPlain_get_n_errs_found(void) ;   4518 extern UInt vgPlain_get_n_errs_found(void) ;
4519 extern void vgPlain_print_errormgr_stats(void) ;   4519 extern void vgPlain_print_errormgr_stats(void) ;
4520 extern SysRes vgPlain_mknod(Char const   *pathname , Int mode , UWord dev ) ;   4520 extern SysRes vgPlain_mknod(Char const   *pathname , Int mode , UWord dev ) ;
4521 extern SysRes vgPlain_open(Char const   *pathname , Int flags , Int mode ) ;   4521 extern SysRes vgPlain_open(Char const   *pathname , Int flags , Int mode ) ;
4522 extern Int vgPlain_fd_open(Char const   *pathname , Int flags , Int mode ) ;   4522 extern Int vgPlain_fd_open(Char const   *pathname , Int flags , Int mode ) ;
4523 extern void vgPlain_close(Int fd ) ;   4523 extern void vgPlain_close(Int fd ) ;
4524 extern Int vgPlain_read(Int fd , void *buf , Int count ) ;   4524 extern Int vgPlain_read(Int fd , void *buf , Int count ) ;
4525 extern Int vgPlain_write(Int fd , void const   *buf , Int count ) ;   4525 extern Int vgPlain_write(Int fd , void const   *buf , Int count ) ;
4526 extern Int vgPlain_pipe(Int *fd ) ;   4526 extern Int vgPlain_pipe(Int *fd ) ;
4527 extern OffT vgPlain_lseek(Int fd , OffT offset , Int whence ) ;   4527 extern OffT vgPlain_lseek(Int fd , OffT offset , Int whence ) ;
4528 extern SysRes vgPlain_stat(Char const   *file_name , struct vg_stat *buf ) ;   4528 extern SysRes vgPlain_stat(Char const   *file_name , struct vg_stat *buf ) ;
4529 extern Int vgPlain_fstat(Int fd , struct vg_stat *buf ) ;   4529 extern Int vgPlain_fstat(Int fd , struct vg_stat *buf ) ;
4530 extern SysRes vgPlain_dup(Int oldfd ) ;   4530 extern SysRes vgPlain_dup(Int oldfd ) ;
4531 extern SysRes vgPlain_dup2(Int oldfd , Int newfd ) ;   4531 extern SysRes vgPlain_dup2(Int oldfd , Int newfd ) ;
4532 extern Int vgPlain_rename(Char const   *old_name , Char const   *new_name ) ;   4532 extern Int vgPlain_rename(Char const   *old_name , Char const   *new_name ) ;
4533 extern Int vgPlain_unlink(Char const   *file_name ) ;   4533 extern Int vgPlain_unlink(Char const   *file_name ) ;
4534 extern Int vgPlain_poll(struct vki_pollfd *fds , Int nfds , Int timeout ) ;   4534 extern Int vgPlain_poll(struct vki_pollfd *fds , Int nfds , Int timeout ) ;
4535 extern Int vgPlain_readlink(Char const   *path , Char *buf , UInt bufsize ) ;   4535 extern Int vgPlain_readlink(Char const   *path , Char *buf , UInt bufsize ) ;
4536 extern Int vgPlain_getdents(Int fd , struct vki_dirent *dirp , UInt count ) ;   4536 extern Int vgPlain_getdents(Int fd , struct vki_dirent *dirp , UInt count ) ;
4537 extern Char *vgPlain_basename(Char const   *path ) ;   4537 extern Char *vgPlain_basename(Char const   *path ) ;
4538 extern Char *vgPlain_dirname(Char const   *path ) ;   4538 extern Char *vgPlain_dirname(Char const   *path ) ;
4539 extern Bool vgPlain_get_startup_wd(Char *buf , SizeT size ) ;   4539 extern Bool vgPlain_get_startup_wd(Char *buf , SizeT size ) ;
4540 extern Int vgPlain_safe_fd(Int oldfd ) ;   4540 extern Int vgPlain_safe_fd(Int oldfd ) ;
4541 extern Int vgPlain_fcntl(Int fd , Int cmd , Addr arg ) ;   4541 extern Int vgPlain_fcntl(Int fd , Int cmd , Addr arg ) ;
4542 extern Bool vgPlain_resolve_filename(Int fd , HChar *buf , Int n_buf ) ;   4542 extern Bool vgPlain_resolve_filename(Int fd , HChar *buf , Int n_buf ) ;
4543 extern Long vgPlain_fsize(Int fd ) ;   4543 extern Long vgPlain_fsize(Int fd ) ;
4544 extern Bool vgPlain_is_dir(HChar const   *f ) ;   4544 extern Bool vgPlain_is_dir(HChar const   *f ) ;
4545 extern Int vgPlain_connect_via_socket(UChar *str ) ;   4545 extern Int vgPlain_connect_via_socket(UChar *str ) ;
4546 extern UInt vgPlain_htonl(UInt x ) ;   4546 extern UInt vgPlain_htonl(UInt x ) ;
4547 extern UInt vgPlain_ntohl(UInt x ) ;   4547 extern UInt vgPlain_ntohl(UInt x ) ;
4548 extern UShort vgPlain_htons(UShort x ) ;   4548 extern UShort vgPlain_htons(UShort x ) ;
4549 extern UShort vgPlain_ntohs(UShort x ) ;   4549 extern UShort vgPlain_ntohs(UShort x ) ;
4550 extern Int vgPlain_socket(Int domain , Int type , Int protocol ) ;   4550 extern Int vgPlain_socket(Int domain , Int type , Int protocol ) ;
4551 extern Int vgPlain_write_socket(Int sd , void *msg , Int count ) ;   4551 extern Int vgPlain_write_socket(Int sd , void *msg , Int count ) ;
4552 extern Int vgPlain_getsockname(Int sd , struct vki_sockaddr *name ,   4552 extern Int vgPlain_getsockname(Int sd , struct vki_sockaddr *name ,
4553                                Int *namelen ) ;   4553                                Int *namelen ) ;
4554 extern Int vgPlain_getpeername(Int sd , struct vki_sockaddr *name ,   4554 extern Int vgPlain_getpeername(Int sd , struct vki_sockaddr *name ,
4555                                Int *namelen ) ;   4555                                Int *namelen ) ;
4556 extern Int vgPlain_getsockopt(Int sd , Int level , Int optname , void *optval ,   4556 extern Int vgPlain_getsockopt(Int sd , Int level , Int optname , void *optval ,
4557                               Int *optlen ) ;   4557                               Int *optlen ) ;
4558 extern Int vgPlain_access(HChar const   *path , Bool irusr , Bool iwusr ,   4558 extern Int vgPlain_access(HChar const   *path , Bool irusr , Bool iwusr ,
4559                           Bool ixusr ) ;   4559                           Bool ixusr ) ;
4560 extern Int vgPlain_check_executable(Bool *is_setuid , HChar const   *f ,   4560 extern Int vgPlain_check_executable(Bool *is_setuid , HChar const   *f ,
4561                                     Bool allow_setuid ) ;   4561                                     Bool allow_setuid ) ;
4562 extern SysRes vgPlain_pread(Int fd , void *buf , Int count , OffT offset ) ;   4562 extern SysRes vgPlain_pread(Int fd , void *buf , Int count , OffT offset ) ;
4563 extern Int vgPlain_mkstemp(HChar *part_of_name , HChar *fullname ) ;   4563 extern Int vgPlain_mkstemp(HChar *part_of_name , HChar *fullname ) ;
4564 extern Bool vgPlain_record_startup_wd(void) ;   4564 extern Bool vgPlain_record_startup_wd(void) ;
4565 extern SysRes vgPlain_do_syscall(UWord sysno , UWord  , UWord  , UWord  ,   4565 extern SysRes vgPlain_do_syscall(UWord sysno , UWord  , UWord  , UWord  ,
4566                                  UWord  , UWord  , UWord  , UWord  , UWord  ) ;   4566                                  UWord  , UWord  , UWord  , UWord  , UWord  ) ;
4567 extern SysRes vgPlain_mk_SysRes_x86_linux(Int val ) ;   4567 extern SysRes vgPlain_mk_SysRes_x86_linux(Int val ) ;
4568 extern SysRes vgPlain_mk_SysRes_amd64_linux(Long val ) ;   4568 extern SysRes vgPlain_mk_SysRes_amd64_linux(Long val ) ;
4569 extern SysRes vgPlain_mk_SysRes_ppc32_linux(UInt val , UInt cr0so ) ;   4569 extern SysRes vgPlain_mk_SysRes_ppc32_linux(UInt val , UInt cr0so ) ;
4570 extern SysRes vgPlain_mk_SysRes_ppc64_linux(ULong val , ULong cr0so ) ;   4570 extern SysRes vgPlain_mk_SysRes_ppc64_linux(ULong val , ULong cr0so ) ;
4571 extern SysRes vgPlain_mk_SysRes_arm_linux(Int val ) ;   4571 extern SysRes vgPlain_mk_SysRes_arm_linux(Int val ) ;
4572 extern SysRes vgPlain_mk_SysRes_ppc32_aix5(UInt val , UInt err ) ;   4572 extern SysRes vgPlain_mk_SysRes_ppc32_aix5(UInt val , UInt err ) ;
4573 extern SysRes vgPlain_mk_SysRes_ppc64_aix5(ULong val , ULong err ) ;   4573 extern SysRes vgPlain_mk_SysRes_ppc64_aix5(ULong val , ULong err ) ;
4574 extern SysRes vgPlain_mk_SysRes_x86_darwin(UChar scclass , Bool isErr ,   4574 extern SysRes vgPlain_mk_SysRes_x86_darwin(UChar scclass , Bool isErr ,
4575                                            UInt wHI , UInt wLO ) ;   4575                                            UInt wHI , UInt wLO ) ;
4576 extern SysRes vgPlain_mk_SysRes_amd64_darwin(UChar scclass , Bool isErr ,   4576 extern SysRes vgPlain_mk_SysRes_amd64_darwin(UChar scclass , Bool isErr ,
4577                                              ULong wHI , ULong wLO ) ;   4577                                              ULong wHI , ULong wLO ) ;
4578 extern SysRes vgPlain_mk_SysRes_s390x_linux(Long val ) ;   4578 extern SysRes vgPlain_mk_SysRes_s390x_linux(Long val ) ;
4579 extern SysRes vgPlain_mk_SysRes_Error(UWord val ) ;   4579 extern SysRes vgPlain_mk_SysRes_Error(UWord val ) ;
4580 extern SysRes vgPlain_mk_SysRes_Success(UWord val ) ;   4580 extern SysRes vgPlain_mk_SysRes_Success(UWord val ) ;
4581 extern HChar const   *vgPlain_strerror(UWord errnum ) ;   4581 extern HChar const   *vgPlain_strerror(UWord errnum ) ;
4582 extern void (*vgPlain_tl_pre_clo_init)(void) ;   4582 extern void (*vgPlain_tl_pre_clo_init)(void) ;
4583 extern void vgPlain_basic_tool_funcs(void (*post_clo_init)(void) ,   4583 extern void vgPlain_basic_tool_funcs(void (*post_clo_init)(void) ,
4584                                      IRSB *(*instrument)(VgCallbackClosure *closure ,   4584                                      IRSB *(*instrument)(VgCallbackClosure *closure ,
4585                                                          IRSB *sb_in ,   4585                                                          IRSB *sb_in ,
4586                                                          VexGuestLayout *layout ,   4586                                                          VexGuestLayout *layout ,
4587                                                          VexGuestExtents *vge ,   4587                                                          VexGuestExtents *vge ,
4588                                                          IRType gWordTy ,   4588                                                          IRType gWordTy ,
4589                                                          IRType hWordTy ) ,   4589                                                          IRType hWordTy ) ,
4590                                      void (*fini)(Int  ) ) ;   4590                                      void (*fini)(Int  ) ) ;
4591 extern void vgPlain_details_name(Char *name ) ;   4591 extern void vgPlain_details_name(Char *name ) ;
4592 extern void vgPlain_details_version(Char *version ) ;   4592 extern void vgPlain_details_version(Char *version ) ;
4593 extern void vgPlain_details_description(Char *description ) ;   4593 extern void vgPlain_details_description(Char *description ) ;
4594 extern void vgPlain_details_copyright_author(Char *copyright_author ) ;   4594 extern void vgPlain_details_copyright_author(Char *copyright_author ) ;
4595 extern void vgPlain_details_avg_translation_sizeB(UInt size ) ;   4595 extern void vgPlain_details_avg_translation_sizeB(UInt size ) ;
4596 extern void vgPlain_details_bug_reports_to(Char *bug_reports_to ) ;   4596 extern void vgPlain_details_bug_reports_to(Char *bug_reports_to ) ;
4597 extern void vgPlain_needs_libc_freeres(void) ;   4597 extern void vgPlain_needs_libc_freeres(void) ;
4598 extern void vgPlain_needs_core_errors(void) ;   4598 extern void vgPlain_needs_core_errors(void) ;
4599 extern void vgPlain_needs_tool_errors(Bool (*eq_Error)(VgRes res , Error *e1 ,   4599 extern void vgPlain_needs_tool_errors(Bool (*eq_Error)(VgRes res , Error *e1 ,
4600                                                        Error *e2 ) ,   4600                                                        Error *e2 ) ,
4601                                       void (*before_pp_Error)(Error *err ) ,   4601                                       void (*before_pp_Error)(Error *err ) ,
4602                                       void (*pp_Error)(Error *err ) ,   4602                                       void (*pp_Error)(Error *err ) ,
4603                                       Bool show_ThreadIDs_for_errors ,   4603                                       Bool show_ThreadIDs_for_errors ,
4604                                       UInt (*update_extra)(Error *err ) ,   4604                                       UInt (*update_extra)(Error *err ) ,
4605                                       Bool (*recognised_suppression)(Char *name ,   4605                                       Bool (*recognised_suppression)(Char *name ,
4606                                                                      Supp *su ) ,   4606                                                                      Supp *su ) ,
4607                                       Bool (*read_extra_suppression_info)(Int fd ,   4607                                       Bool (*read_extra_suppression_info)(Int fd ,
4608                                                                           Char **bufpp ,   4608                                                                           Char **bufpp ,
4609                                                                           SizeT *nBufp ,   4609                                                                           SizeT *nBufp ,
4610                                                                           Supp *su ) ,   4610                                                                           Supp *su ) ,
4611                                       Bool (*error_matches_suppression)(Error *err ,   4611                                       Bool (*error_matches_suppression)(Error *err ,
4612                                                                         Supp *su ) ,   4612                                                                         Supp *su ) ,
4613                                       Char *(*get_error_name)(Error *err ) ,   4613                                       Char *(*get_error_name)(Error *err ) ,
4614                                       Bool (*print_extra_suppression_info)(Error *err ,   4614                                       Bool (*print_extra_suppression_info)(Error *err ,
4615                                                                            Char *buf ,   4615                                                                            Char *buf ,
4616                                                                            Int nBuf ) ) ;   4616                                                                            Int nBuf ) ) ;
4617 extern void vgPlain_needs_superblock_discards(void (*discard_superblock_info)(Addr64 orig_addr ,   4617 extern void vgPlain_needs_superblock_discards(void (*discard_superblock_info)(Addr64 orig_addr ,
4618                                                                               VexGuestExtents extents ) ) ;   4618                                                                               VexGuestExtents extents ) ) ;
4619 extern void vgPlain_needs_command_line_options(Bool (*process_cmd_line_option)(Char *argv ) ,   4619 extern void vgPlain_needs_command_line_options(Bool (*process_cmd_line_option)(Char *argv ) ,
4620                                                void (*print_usage)(void) ,   4620                                                void (*print_usage)(void) ,
4621                                                void (*print_debug_usage)(void) ) ;   4621                                                void (*print_debug_usage)(void) ) ;
4622 extern void vgPlain_needs_client_requests(Bool (*handle_client_request)(ThreadId tid ,   4622 extern void vgPlain_needs_client_requests(Bool (*handle_client_request)(ThreadId tid ,
4623                                                                         UWord *arg_block ,   4623                                                                         UWord *arg_block ,
4624                                                                         UWord *ret ) ) ;   4624                                                                         UWord *ret ) ) ;
4625 extern void vgPlain_needs_syscall_wrapper(void (*pre_syscall)(ThreadId tid ,   4625 extern void vgPlain_needs_syscall_wrapper(void (*pre_syscall)(ThreadId tid ,
4626                                                               UInt syscallno ,   4626                                                               UInt syscallno ,
4627                                                               UWord *args ,   4627                                                               UWord *args ,
4628                                                               UInt nArgs ) ,   4628                                                               UInt nArgs ) ,
4629                                           void (*post_syscall)(ThreadId tid ,   4629                                           void (*post_syscall)(ThreadId tid ,
4630                                                                UInt syscallno ,   4630                                                                UInt syscallno ,
4631                                                                UWord *args ,   4631                                                                UWord *args ,
4632                                                                UInt nArgs ,   4632                                                                UInt nArgs ,
4633                                                                SysRes res ) ) ;   4633                                                                SysRes res ) ) ;
4634 extern void vgPlain_needs_sanity_checks(Bool (*cheap_sanity_check)(void) ,   4634 extern void vgPlain_needs_sanity_checks(Bool (*cheap_sanity_check)(void) ,
4635                                         Bool (*expensive_sanity_check)(void) ) ;   4635                                         Bool (*expensive_sanity_check)(void) ) ;
4636 extern void vgPlain_needs_var_info(void) ;   4636 extern void vgPlain_needs_var_info(void) ;
4637 extern void vgPlain_needs_malloc_replacement(void *(*pmalloc)(ThreadId tid ,   4637 extern void vgPlain_needs_malloc_replacement(void *(*pmalloc)(ThreadId tid ,
4638                                                               SizeT n ) ,   4638                                                               SizeT n ) ,
4639                                              void *(*p__builtin_new)(ThreadId tid ,   4639                                              void *(*p__builtin_new)(ThreadId tid ,
4640                                                                      SizeT n ) ,   4640                                                                      SizeT n ) ,
4641                                              void *(*p__builtin_vec_new)(ThreadId tid ,   4641                                              void *(*p__builtin_vec_new)(ThreadId tid ,
4642                                                                          SizeT n ) ,   4642                                                                          SizeT n ) ,
4643                                              void *(*pmemalign)(ThreadId tid ,   4643                                              void *(*pmemalign)(ThreadId tid ,
4644                                                                 SizeT align ,   4644                                                                 SizeT align ,
4645                                                                 SizeT n ) ,   4645                                                                 SizeT n ) ,
4646                                              void *(*pcalloc)(ThreadId tid ,   4646                                              void *(*pcalloc)(ThreadId tid ,
4647                                                               SizeT nmemb ,   4647                                                               SizeT nmemb ,
4648                                                               SizeT size1 ) ,   4648                                                               SizeT size1 ) ,
4649                                              void (*pfree)(ThreadId tid ,   4649                                              void (*pfree)(ThreadId tid ,
4650                                                            void *p ) ,   4650                                                            void *p ) ,
4651                                              void (*p__builtin_delete)(ThreadId tid ,   4651                                              void (*p__builtin_delete)(ThreadId tid ,
4652                                                                        void *p ) ,   4652                                                                        void *p ) ,
4653                                              void (*p__builtin_vec_delete)(ThreadId tid ,   4653                                              void (*p__builtin_vec_delete)(ThreadId tid ,
4654                                                                            void *p ) ,   4654                                                                            void *p ) ,
4655                                              void *(*prealloc)(ThreadId tid ,   4655                                              void *(*prealloc)(ThreadId tid ,
4656                                                                void *p ,   4656                                                                void *p ,
4657                                                                SizeT new_size ) ,   4657                                                                SizeT new_size ) ,
4658                                              SizeT (*pmalloc_usable_size)(ThreadId tid ,   4658                                              SizeT (*pmalloc_usable_size)(ThreadId tid ,
4659                                                                           void *p ) ,   4659                                                                           void *p ) ,
4660                                              SizeT client_malloc_redzone_szB ) ;   4660                                              SizeT client_malloc_redzone_szB ) ;
4661 extern void vgPlain_needs_xml_output(void) ;   4661 extern void vgPlain_needs_xml_output(void) ;
4662 extern void vgPlain_needs_final_IR_tidy_pass(IRSB *(*final_tidy)(IRSB * ) ) ;   4662 extern void vgPlain_needs_final_IR_tidy_pass(IRSB *(*final_tidy)(IRSB * ) ) ;
4663 extern void vgPlain_track_new_mem_startup(void (*f)(Addr a , SizeT len ,   4663 extern void vgPlain_track_new_mem_startup(void (*f)(Addr a , SizeT len ,
4664                                                     Bool rr , Bool ww ,   4664                                                     Bool rr , Bool ww ,
4665                                                     Bool xx , ULong di_handle ) ) ;   4665                                                     Bool xx , ULong di_handle ) ) ;
4666 extern void vgPlain_track_new_mem_stack_signal(void (*f)(Addr a , SizeT len ,   4666 extern void vgPlain_track_new_mem_stack_signal(void (*f)(Addr a , SizeT len ,
4667                                                          ThreadId tid ) ) ;   4667                                                          ThreadId tid ) ) ;
4668 extern void vgPlain_track_new_mem_brk(void (*f)(Addr a , SizeT len ,   4668 extern void vgPlain_track_new_mem_brk(void (*f)(Addr a , SizeT len ,
4669                                                 ThreadId tid ) ) ;   4669                                                 ThreadId tid ) ) ;
4670 extern void vgPlain_track_new_mem_mmap(void (*f)(Addr a , SizeT len , Bool rr ,   4670 extern void vgPlain_track_new_mem_mmap(void (*f)(Addr a , SizeT len , Bool rr ,
4671                                                  Bool ww , Bool xx ,   4671                                                  Bool ww , Bool xx ,
4672                                                  ULong di_handle ) ) ;   4672                                                  ULong di_handle ) ) ;
4673 extern void vgPlain_track_copy_mem_remap(void (*f)(Addr from , Addr to ,   4673 extern void vgPlain_track_copy_mem_remap(void (*f)(Addr from , Addr to ,
4674                                                    SizeT len ) ) ;   4674                                                    SizeT len ) ) ;
4675 extern void vgPlain_track_change_mem_mprotect(void (*f)(Addr a , SizeT len ,   4675 extern void vgPlain_track_change_mem_mprotect(void (*f)(Addr a , SizeT len ,
4676                                                         Bool rr , Bool ww ,   4676                                                         Bool rr , Bool ww ,
4677                                                         Bool xx ) ) ;   4677                                                         Bool xx ) ) ;
4678 extern void vgPlain_track_die_mem_stack_signal(void (*f)(Addr a , SizeT len ) ) ;   4678 extern void vgPlain_track_die_mem_stack_signal(void (*f)(Addr a , SizeT len ) ) ;
4679 extern void vgPlain_track_die_mem_brk(void (*f)(Addr a , SizeT len ) ) ;   4679 extern void vgPlain_track_die_mem_brk(void (*f)(Addr a , SizeT len ) ) ;
4680 extern void vgPlain_track_die_mem_munmap(void (*f)(Addr a , SizeT len ) ) ;   4680 extern void vgPlain_track_die_mem_munmap(void (*f)(Addr a , SizeT len ) ) ;
4681 extern void vgPlain_track_new_mem_stack_4_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,   4681 extern void vgPlain_track_new_mem_stack_4_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,
4682                                                                                              UInt ecu ) ) ;   4682                                                                                              UInt ecu ) ) ;
4683 extern void vgPlain_track_new_mem_stack_8_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,   4683 extern void vgPlain_track_new_mem_stack_8_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,
4684                                                                                              UInt ecu ) ) ;   4684                                                                                              UInt ecu ) ) ;
4685 extern void vgPlain_track_new_mem_stack_12_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,   4685 extern void vgPlain_track_new_mem_stack_12_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,
4686                                                                                               UInt ecu ) ) ;   4686                                                                                               UInt ecu ) ) ;
4687 extern void vgPlain_track_new_mem_stack_16_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,   4687 extern void vgPlain_track_new_mem_stack_16_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,
4688                                                                                               UInt ecu ) ) ;   4688                                                                                               UInt ecu ) ) ;
4689 extern void vgPlain_track_new_mem_stack_32_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,   4689 extern void vgPlain_track_new_mem_stack_32_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,
4690                                                                                               UInt ecu ) ) ;   4690                                                                                               UInt ecu ) ) ;
4691 extern void vgPlain_track_new_mem_stack_112_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,   4691 extern void vgPlain_track_new_mem_stack_112_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,
4692                                                                                                UInt ecu ) ) ;   4692                                                                                                UInt ecu ) ) ;
4693 extern void vgPlain_track_new_mem_stack_128_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,   4693 extern void vgPlain_track_new_mem_stack_128_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,
4694                                                                                                UInt ecu ) ) ;   4694                                                                                                UInt ecu ) ) ;
4695 extern void vgPlain_track_new_mem_stack_144_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,   4695 extern void vgPlain_track_new_mem_stack_144_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,
4696                                                                                                UInt ecu ) ) ;   4696                                                                                                UInt ecu ) ) ;
4697 extern void vgPlain_track_new_mem_stack_160_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,   4697 extern void vgPlain_track_new_mem_stack_160_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,
4698                                                                                                UInt ecu ) ) ;   4698                                                                                                UInt ecu ) ) ;
4699 extern void vgPlain_track_new_mem_stack_w_ECU(void (*f)(Addr a , SizeT len ,   4699 extern void vgPlain_track_new_mem_stack_w_ECU(void (*f)(Addr a , SizeT len ,
4700                                                         UInt ecu ) ) ;   4700                                                         UInt ecu ) ) ;
4701 extern void vgPlain_track_new_mem_stack_4(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;   4701 extern void vgPlain_track_new_mem_stack_4(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;
4702 extern void vgPlain_track_new_mem_stack_8(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;   4702 extern void vgPlain_track_new_mem_stack_8(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;
4703 extern void vgPlain_track_new_mem_stack_12(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;   4703 extern void vgPlain_track_new_mem_stack_12(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;
4704 extern void vgPlain_track_new_mem_stack_16(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;   4704 extern void vgPlain_track_new_mem_stack_16(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;
4705 extern void vgPlain_track_new_mem_stack_32(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;   4705 extern void vgPlain_track_new_mem_stack_32(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;
4706 extern void vgPlain_track_new_mem_stack_112(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;   4706 extern void vgPlain_track_new_mem_stack_112(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;
4707 extern void vgPlain_track_new_mem_stack_128(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;   4707 extern void vgPlain_track_new_mem_stack_128(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;
4708 extern void vgPlain_track_new_mem_stack_144(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;   4708 extern void vgPlain_track_new_mem_stack_144(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;
4709 extern void vgPlain_track_new_mem_stack_160(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;   4709 extern void vgPlain_track_new_mem_stack_160(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;
4710 extern void vgPlain_track_new_mem_stack(void (*f)(Addr a , SizeT len ) ) ;   4710 extern void vgPlain_track_new_mem_stack(void (*f)(Addr a , SizeT len ) ) ;
4711 extern void vgPlain_track_die_mem_stack_4(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;   4711 extern void vgPlain_track_die_mem_stack_4(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;
4712 extern void vgPlain_track_die_mem_stack_8(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;   4712 extern void vgPlain_track_die_mem_stack_8(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;
4713 extern void vgPlain_track_die_mem_stack_12(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;   4713 extern void vgPlain_track_die_mem_stack_12(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;
4714 extern void vgPlain_track_die_mem_stack_16(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;   4714 extern void vgPlain_track_die_mem_stack_16(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;
4715 extern void vgPlain_track_die_mem_stack_32(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;   4715 extern void vgPlain_track_die_mem_stack_32(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;
4716 extern void vgPlain_track_die_mem_stack_112(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;   4716 extern void vgPlain_track_die_mem_stack_112(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;
4717 extern void vgPlain_track_die_mem_stack_128(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;   4717 extern void vgPlain_track_die_mem_stack_128(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;
4718 extern void vgPlain_track_die_mem_stack_144(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;   4718 extern void vgPlain_track_die_mem_stack_144(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;
4719 extern void vgPlain_track_die_mem_stack_160(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;   4719 extern void vgPlain_track_die_mem_stack_160(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;
4720 extern void vgPlain_track_die_mem_stack(void (*f)(Addr a , SizeT len ) ) ;   4720 extern void vgPlain_track_die_mem_stack(void (*f)(Addr a , SizeT len ) ) ;
4721 extern void vgPlain_track_ban_mem_stack(void (*f)(Addr a , SizeT len ) ) ;   4721 extern void vgPlain_track_ban_mem_stack(void (*f)(Addr a , SizeT len ) ) ;
4722 extern void vgPlain_track_pre_mem_read(void (*f)(CorePart part , ThreadId tid ,   4722 extern void vgPlain_track_pre_mem_read(void (*f)(CorePart part , ThreadId tid ,
4723                                                  Char *s , Addr a , SizeT size ) ) ;   4723                                                  Char *s , Addr a , SizeT size ) ) ;
4724 extern void vgPlain_track_pre_mem_read_asciiz(void (*f)(CorePart part ,   4724 extern void vgPlain_track_pre_mem_read_asciiz(void (*f)(CorePart part ,
4725                                                         ThreadId tid , Char *s ,   4725                                                         ThreadId tid , Char *s ,
4726                                                         Addr a ) ) ;   4726                                                         Addr a ) ) ;
4727 extern void vgPlain_track_pre_mem_write(void (*f)(CorePart part , ThreadId tid ,   4727 extern void vgPlain_track_pre_mem_write(void (*f)(CorePart part , ThreadId tid ,
4728                                                   Char *s , Addr a , SizeT size ) ) ;   4728                                                   Char *s , Addr a , SizeT size ) ) ;
4729 extern void vgPlain_track_post_mem_write(void (*f)(CorePart part ,   4729 extern void vgPlain_track_post_mem_write(void (*f)(CorePart part ,
4730                                                    ThreadId tid , Addr a ,   4730                                                    ThreadId tid , Addr a ,
4731                                                    SizeT size ) ) ;   4731                                                    SizeT size ) ) ;
4732 extern void vgPlain_track_pre_reg_read(void (*f)(CorePart part , ThreadId tid ,   4732 extern void vgPlain_track_pre_reg_read(void (*f)(CorePart part , ThreadId tid ,
4733                                                  Char *s ,   4733                                                  Char *s ,
4734                                                  PtrdiffT guest_state_offset ,   4734                                                  PtrdiffT guest_state_offset ,
4735                                                  SizeT size ) ) ;   4735                                                  SizeT size ) ) ;
4736 extern void vgPlain_track_post_reg_write(void (*f)(CorePart part ,   4736 extern void vgPlain_track_post_reg_write(void (*f)(CorePart part ,
4737                                                    ThreadId tid ,   4737                                                    ThreadId tid ,
4738                                                    PtrdiffT guest_state_offset ,   4738                                                    PtrdiffT guest_state_offset ,
4739                                                    SizeT size ) ) ;   4739                                                    SizeT size ) ) ;
4740 extern void vgPlain_track_post_reg_write_clientcall_return(void (*f)(ThreadId tid ,   4740 extern void vgPlain_track_post_reg_write_clientcall_return(void (*f)(ThreadId tid ,
4741                                                                      PtrdiffT guest_state_offset ,   4741                                                                      PtrdiffT guest_state_offset ,
4742                                                                      SizeT size ,   4742                                                                      SizeT size ,
4743                                                                      Addr f ) ) ;   4743                                                                      Addr f ) ) ;
4744 extern void vgPlain_track_start_client_code(void (*f)(ThreadId tid ,   4744 extern void vgPlain_track_start_client_code(void (*f)(ThreadId tid ,
4745                                                       ULong blocks_dispatched ) ) ;   4745                                                       ULong blocks_dispatched ) ) ;
4746 extern void vgPlain_track_stop_client_code(void (*f)(ThreadId tid ,   4746 extern void vgPlain_track_stop_client_code(void (*f)(ThreadId tid ,
4747                                                      ULong blocks_dispatched ) ) ;   4747                                                      ULong blocks_dispatched ) ) ;
4748 extern void vgPlain_track_pre_thread_ll_create(void (*f)(ThreadId tid ,   4748 extern void vgPlain_track_pre_thread_ll_create(void (*f)(ThreadId tid ,
4749                                                          ThreadId child ) ) ;   4749                                                          ThreadId child ) ) ;
4750 extern void vgPlain_track_pre_thread_first_insn(void (*f)(ThreadId tid ) ) ;   4750 extern void vgPlain_track_pre_thread_first_insn(void (*f)(ThreadId tid ) ) ;
4751 extern void vgPlain_track_pre_thread_ll_exit(void (*f)(ThreadId tid ) ) ;   4751 extern void vgPlain_track_pre_thread_ll_exit(void (*f)(ThreadId tid ) ) ;
4752 extern void vgPlain_track_pre_deliver_signal(void (*f)(ThreadId tid ,   4752 extern void vgPlain_track_pre_deliver_signal(void (*f)(ThreadId tid ,
4753                                                        Int sigNo ,   4753                                                        Int sigNo ,
4754                                                        Bool alt_stack ) ) ;   4754                                                        Bool alt_stack ) ) ;
4755 extern void vgPlain_track_post_deliver_signal(void (*f)(ThreadId tid ,   4755 extern void vgPlain_track_post_deliver_signal(void (*f)(ThreadId tid ,
4756                                                         Int sigNo ) ) ;   4756                                                         Int sigNo ) ) ;
4757 extern VgDetails vgPlain_details ;   4757 extern VgDetails vgPlain_details ;
4758 extern VgNeeds vgPlain_needs ;   4758 extern VgNeeds vgPlain_needs ;
4759 extern VgToolInterface vgPlain_tdict ;   4759 extern VgToolInterface vgPlain_tdict ;
4760 extern Bool vgPlain_sanity_check_needs(Char **failmsg ) ;   4760 extern Bool vgPlain_sanity_check_needs(Char **failmsg ) ;
4761 extern Int vgPlain_am_get_segment_starts(Addr *starts , Int nStarts ) ;   4761 extern Int vgPlain_am_get_segment_starts(Addr *starts , Int nStarts ) ;
4762 extern NSegment const   *vgPlain_am_find_nsegment(Addr a ) ;   4762 extern NSegment const   *vgPlain_am_find_nsegment(Addr a ) ;
4763 extern HChar *vgPlain_am_get_filename(NSegment const   * ) ;   4763 extern HChar *vgPlain_am_get_filename(NSegment const   * ) ;
4764 extern Bool vgPlain_am_is_valid_for_client(Addr start , SizeT len , UInt prot ) ;   4764 extern Bool vgPlain_am_is_valid_for_client(Addr start , SizeT len , UInt prot ) ;
4765 extern void *vgPlain_am_shadow_alloc(SizeT size ) ;   4765 extern void *vgPlain_am_shadow_alloc(SizeT size ) ;
4766 extern SysRes vgPlain_am_munmap_valgrind(Addr start , SizeT length ) ;   4766 extern SysRes vgPlain_am_munmap_valgrind(Addr start , SizeT length ) ;
4767 extern Addr vgPlain_am_startup(Addr sp_at_startup ) ;   4767 extern Addr vgPlain_am_startup(Addr sp_at_startup ) ;
4768 extern NSegment const   *vgPlain_am_next_nsegment(NSegment *here , Bool fwds ) ;   4768 extern NSegment const   *vgPlain_am_next_nsegment(NSegment *here , Bool fwds ) ;
4769 extern Bool vgPlain_am_is_valid_for_client_or_free_or_resvn(Addr start ,   4769 extern Bool vgPlain_am_is_valid_for_client_or_free_or_resvn(Addr start ,
4770                                                             SizeT len ,   4770                                                             SizeT len ,
4771                                                             UInt prot ) ;   4771                                                             UInt prot ) ;
4772 extern ULong vgPlain_am_get_anonsize_total(void) ;   4772 extern ULong vgPlain_am_get_anonsize_total(void) ;
4773 extern void vgPlain_am_show_nsegments(Int logLevel , HChar *who ) ;   4773 extern void vgPlain_am_show_nsegments(Int logLevel , HChar *who ) ;
4774 extern Bool vgPlain_am_do_sync_check(HChar const   *fn , HChar const   *file ,   4774 extern Bool vgPlain_am_do_sync_check(HChar const   *fn , HChar const   *file ,
4775                                      Int line ) ;   4775                                      Int line ) ;
4776 extern Addr vgPlain_am_get_advisory(MapRequest *req , Bool forClient , Bool *ok ) ;   4776 extern Addr vgPlain_am_get_advisory(MapRequest *req , Bool forClient , Bool *ok ) ;
4777 extern Addr vgPlain_am_get_advisory_client_simple(Addr start , SizeT len ,   4777 extern Addr vgPlain_am_get_advisory_client_simple(Addr start , SizeT len ,
4778                                                   Bool *ok ) ;   4778                                                   Bool *ok ) ;
4779 extern Bool vgPlain_am_notify_client_mmap(Addr a , SizeT len , UInt prot ,   4779 extern Bool vgPlain_am_notify_client_mmap(Addr a , SizeT len , UInt prot ,
4780                                           UInt flags , Int fd , Off64T offset ) ;   4780                                           UInt flags , Int fd , Off64T offset ) ;
4781 extern Bool vgPlain_am_notify_client_shmat(Addr a , SizeT len , UInt prot ) ;   4781 extern Bool vgPlain_am_notify_client_shmat(Addr a , SizeT len , UInt prot ) ;
4782 extern Bool vgPlain_am_notify_mprotect(Addr start , SizeT len , UInt prot ) ;   4782 extern Bool vgPlain_am_notify_mprotect(Addr start , SizeT len , UInt prot ) ;
4783 extern Bool vgPlain_am_notify_munmap(Addr start , SizeT len ) ;   4783 extern Bool vgPlain_am_notify_munmap(Addr start , SizeT len ) ;
4784 extern SysRes vgPlain_am_do_mmap_NO_NOTIFY(Addr start , SizeT length ,   4784 extern SysRes vgPlain_am_do_mmap_NO_NOTIFY(Addr start , SizeT length ,
4785                                            UInt prot , UInt flags , Int fd ,   4785                                            UInt prot , UInt flags , Int fd ,
4786                                            Off64T offset ) ;   4786                                            Off64T offset ) ;
4787 extern void vgPlain_am_aix5_reread_procmap(AixCodeSegChange *directives ,   4787 extern void vgPlain_am_aix5_reread_procmap(AixCodeSegChange *directives ,
4788                                            Int *ndirectives ) ;   4788                                            Int *ndirectives ) ;
4789 extern Int vgPlain_am_aix5_reread_procmap_howmany_directives(void) ;   4789 extern Int vgPlain_am_aix5_reread_procmap_howmany_directives(void) ;
4790 extern void vgPlain_am_aix5_set_initial_client_sp(Addr  ) ;   4790 extern void vgPlain_am_aix5_set_initial_client_sp(Addr  ) ;
4791 extern Bool vgPlain_am_aix5_sbrk_allowed ;   4791 extern Bool vgPlain_am_aix5_sbrk_allowed ;
4792 extern SysRes vgPlain_am_mmap_file_fixed_client(Addr start , SizeT length ,   4792 extern SysRes vgPlain_am_mmap_file_fixed_client(Addr start , SizeT length ,
4793                                                 UInt prot , Int fd ,   4793                                                 UInt prot , Int fd ,
4794                                                 Off64T offset ) ;   4794                                                 Off64T offset ) ;
4795 extern SysRes vgPlain_am_mmap_named_file_fixed_client(Addr start ,   4795 extern SysRes vgPlain_am_mmap_named_file_fixed_client(Addr start ,
4796                                                       SizeT length , UInt prot ,   4796                                                       SizeT length , UInt prot ,
4797                                                       Int fd , Off64T offset ,   4797                                                       Int fd , Off64T offset ,
4798                                                       HChar const   *name ) ;   4798                                                       HChar const   *name ) ;
4799 extern SysRes vgPlain_am_mmap_anon_fixed_client(Addr start , SizeT length ,   4799 extern SysRes vgPlain_am_mmap_anon_fixed_client(Addr start , SizeT length ,
4800                                                 UInt prot ) ;   4800                                                 UInt prot ) ;
4801 extern SysRes vgPlain_am_mmap_anon_float_client(SizeT length , Int prot ) ;   4801 extern SysRes vgPlain_am_mmap_anon_float_client(SizeT length , Int prot ) ;
4802 extern SysRes vgPlain_am_sbrk_anon_float_client(SizeT length , Int prot ) ;   4802 extern SysRes vgPlain_am_sbrk_anon_float_client(SizeT length , Int prot ) ;
4803 extern SysRes vgPlain_am_mmap_anon_float_valgrind(SizeT cszB ) ;   4803 extern SysRes vgPlain_am_mmap_anon_float_valgrind(SizeT cszB ) ;
4804 extern SysRes vgPlain_am_sbrk_anon_float_valgrind(SizeT cszB ) ;   4804 extern SysRes vgPlain_am_sbrk_anon_float_valgrind(SizeT cszB ) ;
4805 extern SysRes vgPlain_am_mmap_file_float_valgrind(SizeT length , UInt prot ,   4805 extern SysRes vgPlain_am_mmap_file_float_valgrind(SizeT length , UInt prot ,
4806                                                   Int fd , Off64T offset ) ;   4806                                                   Int fd , Off64T offset ) ;
4807 extern SysRes vgPlain_am_shared_mmap_file_float_valgrind(SizeT length ,   4807 extern SysRes vgPlain_am_shared_mmap_file_float_valgrind(SizeT length ,
4808                                                          UInt prot , Int fd ,   4808                                                          UInt prot , Int fd ,
4809                                                          Off64T offset ) ;   4809                                                          Off64T offset ) ;
4810 extern SysRes vgPlain_am_munmap_client(Bool *need_discard , Addr start ,   4810 extern SysRes vgPlain_am_munmap_client(Bool *need_discard , Addr start ,
4811                                        SizeT length ) ;   4811                                        SizeT length ) ;
4812 extern Bool vgPlain_am_change_ownership_v_to_c(Addr start , SizeT len ) ;   4812 extern Bool vgPlain_am_change_ownership_v_to_c(Addr start , SizeT len ) ;
4813 extern void vgPlain_am_set_segment_isCH_if_SkAnonC(NSegment *seg ) ;   4813 extern void vgPlain_am_set_segment_isCH_if_SkAnonC(NSegment *seg ) ;
4814 extern void vgPlain_am_set_segment_hasT_if_SkFileC_or_SkAnonC(NSegment * ) ;   4814 extern void vgPlain_am_set_segment_hasT_if_SkFileC_or_SkAnonC(NSegment * ) ;
4815 extern Bool vgPlain_am_create_reservation(Addr start , SizeT length ,   4815 extern Bool vgPlain_am_create_reservation(Addr start , SizeT length ,
4816                                           ShrinkMode smode , SSizeT extra ) ;   4816                                           ShrinkMode smode , SSizeT extra ) ;
4817 extern Bool vgPlain_am_extend_into_adjacent_reservation_client(NSegment *seg ,   4817 extern Bool vgPlain_am_extend_into_adjacent_reservation_client(NSegment *seg ,
4818                                                                SSizeT delta ) ;   4818                                                                SSizeT delta ) ;
4819 extern Bool vgPlain_am_extend_map_client(Bool *need_discard , NSegment *seg ,   4819 extern Bool vgPlain_am_extend_map_client(Bool *need_discard , NSegment *seg ,
4820                                          SizeT delta ) ;   4820                                          SizeT delta ) ;
4821 extern Bool vgPlain_am_relocate_nooverlap_client(Bool *need_discard ,   4821 extern Bool vgPlain_am_relocate_nooverlap_client(Bool *need_discard ,
4822                                                  Addr old_addr , SizeT old_len ,   4822                                                  Addr old_addr , SizeT old_len ,
4823                                                  Addr new_addr , SizeT new_len ) ;   4823                                                  Addr new_addr , SizeT new_len ) ;
4824 extern VgStack *vgPlain_am_alloc_VgStack(Addr *initial_sp ) ;   4824 extern VgStack *vgPlain_am_alloc_VgStack(Addr *initial_sp ) ;
4825 extern SizeT vgPlain_am_get_VgStack_unused_szB(VgStack *stack , SizeT limit ) ;   4825 extern SizeT vgPlain_am_get_VgStack_unused_szB(VgStack *stack , SizeT limit ) ;
4826 static int ( /* format attribute */  VALGRIND_PRINTF)(char const   *format   4826 static int ( /* format attribute */  VALGRIND_PRINTF)(char const   *format
4827                                                       , ...)  __attribute__((__unused__)) ;   4827                                                       , ...)  __attribute__((__unused__)) ;
4828 static int ( /* format attribute */  VALGRIND_PRINTF)(char const   *format   4828 static int ( /* format attribute */  VALGRIND_PRINTF)(char const   *format
4829                                                       , ...)  __attribute__((__unused__)) ;   4829                                                       , ...)  __attribute__((__unused__)) ;
4830 static int ( /* format attribute */  VALGRIND_PRINTF)(char const   *format   4830 static int ( /* format attribute */  VALGRIND_PRINTF)(char const   *format
4831                                                       , ...)   4831                                                       , ...)
4832 {   4832 {
4833   unsigned long _qzz_res ;   4833   unsigned long _qzz_res ;
4834   va_list vargs ;   4834   va_list vargs ;
4835   unsigned int volatile   _zzq_args[6] ;   4835   unsigned int volatile   _zzq_args[6] ;
4836   unsigned int volatile   _zzq_result ;   4836   unsigned int volatile   _zzq_result ;
4837     4837  
4838   {   4838   {
4839   __builtin_va_start(vargs, format);   4839   __builtin_va_start(vargs, format);
4840   _zzq_args[0] = (unsigned int volatile   )5123U;   4840   _zzq_args[0] = (unsigned int volatile   )5123U;
4841   _zzq_args[1] = (unsigned int volatile   )((unsigned int )((unsigned long )format));   4841   _zzq_args[1] = (unsigned int volatile   )((unsigned int )((unsigned long )format));
4842   _zzq_args[2] = (unsigned int volatile   )((unsigned int )((unsigned long )(& vargs)));   4842   _zzq_args[2] = (unsigned int volatile   )((unsigned int )((unsigned long )(& vargs)));
4843   _zzq_args[3] = (unsigned int volatile   )0U;   4843   _zzq_args[3] = (unsigned int volatile   )0U;
4844   _zzq_args[4] = (unsigned int volatile   )0U;   4844   _zzq_args[4] = (unsigned int volatile   )0U;
4845   _zzq_args[5] = (unsigned int volatile   )0U;   4845   _zzq_args[5] = (unsigned int volatile   )0U;
4846   __asm__  volatile   ("roll $3,  %%edi ; roll $13, %%edi\n\t"   4846   __asm__  volatile   ("roll $3,  %%edi ; roll $13, %%edi\n\t"
4847                        "roll $29, %%edi ; roll $19, %%edi\n\t"   4847                        "roll $29, %%edi ; roll $19, %%edi\n\t"
4848                        "xchgl %%ebx,%%ebx": "=d" (_zzq_result): "a" (& _zzq_args[0]),   4848                        "xchgl %%ebx,%%ebx": "=d" (_zzq_result): "a" (& _zzq_args[0]),
4849                        "0" (0): "cc", "memory");   4849                        "0" (0): "cc", "memory");
4850   _qzz_res = (unsigned long )_zzq_result;   4850   _qzz_res = (unsigned long )_zzq_result;
4851   __builtin_va_end(vargs);   4851   __builtin_va_end(vargs);
4852   return ((int )_qzz_res);   4852   return ((int )_qzz_res);
4853 }   4853 }
4854 }   4854 }
4855 static int ( /* format attribute */  VALGRIND_PRINTF_BACKTRACE)(char const   *format   4855 static int ( /* format attribute */  VALGRIND_PRINTF_BACKTRACE)(char const   *format
4856                                                                 , ...)  __attribute__((__unused__)) ;   4856                                                                 , ...)  __attribute__((__unused__)) ;
4857 static int ( /* format attribute */  VALGRIND_PRINTF_BACKTRACE)(char const   *format   4857 static int ( /* format attribute */  VALGRIND_PRINTF_BACKTRACE)(char const   *format
4858                                                                 , ...)  __attribute__((__unused__)) ;   4858                                                                 , ...)  __attribute__((__unused__)) ;
4859 static int ( /* format attribute */  VALGRIND_PRINTF_BACKTRACE)(char const   *format   4859 static int ( /* format attribute */  VALGRIND_PRINTF_BACKTRACE)(char const   *format
4860                                                                 , ...)   4860                                                                 , ...)
4861 {   4861 {
4862   unsigned long _qzz_res ;   4862   unsigned long _qzz_res ;
4863   va_list vargs ;   4863   va_list vargs ;
4864   unsigned int volatile   _zzq_args[6] ;   4864   unsigned int volatile   _zzq_args[6] ;
4865   unsigned int volatile   _zzq_result ;   4865   unsigned int volatile   _zzq_result ;
4866     4866  
4867   {   4867   {
4868   __builtin_va_start(vargs, format);   4868   __builtin_va_start(vargs, format);
4869   _zzq_args[0] = (unsigned int volatile   )5124U;   4869   _zzq_args[0] = (unsigned int volatile   )5124U;
4870   _zzq_args[1] = (unsigned int volatile   )((unsigned int )((unsigned long )format));   4870   _zzq_args[1] = (unsigned int volatile   )((unsigned int )((unsigned long )format));
4871   _zzq_args[2] = (unsigned int volatile   )((unsigned int )((unsigned long )(& vargs)));   4871   _zzq_args[2] = (unsigned int volatile   )((unsigned int )((unsigned long )(& vargs)));
4872   _zzq_args[3] = (unsigned int volatile   )0U;   4872   _zzq_args[3] = (unsigned int volatile   )0U;
4873   _zzq_args[4] = (unsigned int volatile   )0U;   4873   _zzq_args[4] = (unsigned int volatile   )0U;
4874   _zzq_args[5] = (unsigned int volatile   )0U;   4874   _zzq_args[5] = (unsigned int volatile   )0U;
4875   __asm__  volatile   ("roll $3,  %%edi ; roll $13, %%edi\n\t"   4875   __asm__  volatile   ("roll $3,  %%edi ; roll $13, %%edi\n\t"
4876                        "roll $29, %%edi ; roll $19, %%edi\n\t"   4876                        "roll $29, %%edi ; roll $19, %%edi\n\t"
4877                        "xchgl %%ebx,%%ebx": "=d" (_zzq_result): "a" (& _zzq_args[0]),   4877                        "xchgl %%ebx,%%ebx": "=d" (_zzq_result): "a" (& _zzq_args[0]),
4878                        "0" (0): "cc", "memory");   4878                        "0" (0): "cc", "memory");
4879   _qzz_res = (unsigned long )_zzq_result;   4879   _qzz_res = (unsigned long )_zzq_result;
4880   __builtin_va_end(vargs);   4880   __builtin_va_end(vargs);
4881   return ((int )_qzz_res);   4881   return ((int )_qzz_res);
4882 }   4882 }
4883 }   4883 }
4884 extern void gdbserver_init(void) ;   4884 extern void gdbserver_init(void) ;
4885 extern void server_main(void) ;   4885 extern void server_main(void) ;
4886 extern void gdbserver_terminate(void) ;   4886 extern void gdbserver_terminate(void) ;
4887 extern void monitor_output(char *s ) ;   4887 extern void monitor_output(char *s ) ;
4888 extern int remote_desc_activity(char *msg ) ;   4888 extern int remote_desc_activity(char *msg ) ;
4889 extern void remote_utils_output_status(void) ;   4889 extern void remote_utils_output_status(void) ;
4890 extern Bool remote_connected(void) ;   4890 extern Bool remote_connected(void) ;
4891 extern void remote_finish(FinishReason reason ) ;   4891 extern void remote_finish(FinishReason reason ) ;
4892 extern void reset_valgrind_sink(char *info ) ;   4892 extern void reset_valgrind_sink(char *info ) ;
4893 extern Addr thumb_pc(Addr pc ) ;   4893 extern Addr thumb_pc(Addr pc ) ;
4894 extern Bool valgrind_single_stepping(void) ;   4894 extern Bool valgrind_single_stepping(void) ;
4895 extern void valgrind_set_single_stepping(Bool  ) ;   4895 extern void valgrind_set_single_stepping(Bool  ) ;
4896 extern Addr valgrind_get_ignore_break_once(void) ;   4896 extern Addr valgrind_get_ignore_break_once(void) ;
4897 extern void vgPlain_set_watchpoint_stop_address(Addr addr ) ;   4897 extern void vgPlain_set_watchpoint_stop_address(Addr addr ) ;
4898 extern ThreadId vgdb_interrupted_tid ;   4898 extern ThreadId vgdb_interrupted_tid ;
4899 extern void *new_register_cache(void) ;   4899 extern void *new_register_cache(void) ;
4900 extern void free_register_cache(void *regcache ) ;   4900 extern void free_register_cache(void *regcache ) ;
4901 extern void regcache_invalidate_one(struct inferior_list_entry * ) ;   4901 extern void regcache_invalidate_one(struct inferior_list_entry * ) ;
4902 extern void regcache_invalidate(void) ;   4902 extern void regcache_invalidate(void) ;
4903 extern void registers_to_string(char *buf ) ;   4903 extern void registers_to_string(char *buf ) ;
4904 extern void registers_from_string(char *buf ) ;   4904 extern void registers_from_string(char *buf ) ;
4905 extern int registers_length(void) ;   4905 extern int registers_length(void) ;
4906 extern struct reg *find_register_by_number(int n ) ;   4906 extern struct reg *find_register_by_number(int n ) ;
4907 extern int register_size(int n ) ;   4907 extern int register_size(int n ) ;
4908 extern int find_regno(char const   *name ) ;   4908 extern int find_regno(char const   *name ) ;
4909 extern char const   **gdbserver_expedite_regs ;   4909 extern char const   **gdbserver_expedite_regs ;
4910 extern void supply_register(int n , void const   *buf , Bool *mod ) ;   4910 extern void supply_register(int n , void const   *buf , Bool *mod ) ;
4911 extern void supply_register_from_string(int n , char const   *buf , Bool *mod ) ;   4911 extern void supply_register_from_string(int n , char const   *buf , Bool *mod ) ;
4912 extern void supply_register_by_name(char const   *name , void const   *buf ,   4912 extern void supply_register_by_name(char const   *name , void const   *buf ,
4913                                     Bool *mod ) ;   4913                                     Bool *mod ) ;
4914 extern void collect_register(int n , void *buf ) ;   4914 extern void collect_register(int n , void *buf ) ;
4915 extern void collect_register_as_string(int n , char *buf ) ;   4915 extern void collect_register_as_string(int n , char *buf ) ;
4916 extern void collect_register_by_name(char const   *name , void *buf ) ;   4916 extern void collect_register_by_name(char const   *name , void *buf ) ;
4917 extern void gdbserver_signal_encountered(Int sigNo ) ;   4917 extern void gdbserver_signal_encountered(Int sigNo ) ;
4918 extern Bool gdbserver_deliver_signal(Int sigNo ) ;   4918 extern Bool gdbserver_deliver_signal(Int sigNo ) ;
4919 extern int pass_signals[] ;   4919 extern int pass_signals[] ;
4920 extern struct target_ops *the_target ;   4920 extern struct target_ops *the_target ;
4921 extern void set_target_ops(struct target_ops * ) ;   4921 extern void set_target_ops(struct target_ops * ) ;
4922 extern int read_inferior_memory(CORE_ADDR memaddr , unsigned char *myaddr ,   4922 extern int read_inferior_memory(CORE_ADDR memaddr , unsigned char *myaddr ,
4923                                 int len ) ;   4923                                 int len ) ;
4924 extern int write_inferior_memory(CORE_ADDR memaddr ,   4924 extern int write_inferior_memory(CORE_ADDR memaddr ,
4925                                  unsigned char const   *myaddr , int len ) ;   4925                                  unsigned char const   *myaddr , int len ) ;
4926 extern void set_desired_inferior(int id ) ;   4926 extern void set_desired_inferior(int id ) ;
4927 extern void *vgPlain_dmemcpy(void *d , void const   *s , SizeT sz , Bool *mod ) ;   4927 extern void *vgPlain_dmemcpy(void *d , void const   *s , SizeT sz , Bool *mod ) ;
4928 extern void vgPlain_transfer(void *valgrind , void *gdbserver ,   4928 extern void vgPlain_transfer(void *valgrind , void *gdbserver ,
4929                              transfer_direction dir , SizeT sz , Bool *mod ) ;   4929                              transfer_direction dir , SizeT sz , Bool *mod ) ;
4930 extern void initialize_low(void) ;   4930 extern void initialize_low(void) ;
4931 extern void initialize_shadow_low(Bool shadow_mode ) ;   4931 extern void initialize_shadow_low(Bool shadow_mode ) ;
4932 extern struct inferior_list all_threads ;   4932 extern struct inferior_list all_threads ;
4933 extern void add_inferior_to_list(struct inferior_list *list ,   4933 extern void add_inferior_to_list(struct inferior_list *list ,
4934                                  struct inferior_list_entry *new_inferior ) ;   4934                                  struct inferior_list_entry *new_inferior ) ;
4935 extern void for_each_inferior(struct inferior_list *list ,   4935 extern void for_each_inferior(struct inferior_list *list ,
4936                               void (*action)(struct inferior_list_entry * ) ) ;   4936                               void (*action)(struct inferior_list_entry * ) ) ;
4937 extern struct thread_info *current_inferior ;   4937 extern struct thread_info *current_inferior ;
4938 extern void remove_inferior(struct inferior_list *list ,   4938 extern void remove_inferior(struct inferior_list *list ,
4939                             struct inferior_list_entry *entry ) ;   4939                             struct inferior_list_entry *entry ) ;
4940 extern void remove_thread(struct thread_info *thread ) ;   4940 extern void remove_thread(struct thread_info *thread ) ;
4941 extern void add_thread(unsigned long thread_id , void *target_data ,   4941 extern void add_thread(unsigned long thread_id , void *target_data ,
4942                        unsigned int  ) ;   4942                        unsigned int  ) ;
4943 extern unsigned int thread_id_to_gdb_id(unsigned long  ) ;   4943 extern unsigned int thread_id_to_gdb_id(unsigned long  ) ;
4944 extern unsigned int thread_to_gdb_id(struct thread_info * ) ;   4944 extern unsigned int thread_to_gdb_id(struct thread_info * ) ;
4945 extern unsigned long gdb_id_to_thread_id(unsigned int  ) ;   4945 extern unsigned long gdb_id_to_thread_id(unsigned int  ) ;
4946 extern struct thread_info *gdb_id_to_thread(unsigned int  ) ;   4946 extern struct thread_info *gdb_id_to_thread(unsigned int  ) ;
4947 extern void clear_inferiors(void) ;   4947 extern void clear_inferiors(void) ;
4948 extern struct inferior_list_entry *find_inferior(struct inferior_list * ,   4948 extern struct inferior_list_entry *find_inferior(struct inferior_list * ,
4949                                                  int (*func)(struct inferior_list_entry * ,   4949                                                  int (*func)(struct inferior_list_entry * ,
4950                                                              void * ) ,   4950                                                              void * ) ,
4951                                                  void *arg ) ;   4951                                                  void *arg ) ;
4952 extern struct inferior_list_entry *find_inferior_id(struct inferior_list *list ,   4952 extern struct inferior_list_entry *find_inferior_id(struct inferior_list *list ,
4953                                                     unsigned long id ) ;   4953                                                     unsigned long id ) ;
4954 extern void *inferior_target_data(struct thread_info * ) ;   4954 extern void *inferior_target_data(struct thread_info * ) ;
4955 extern void set_inferior_target_data(struct thread_info * , void * ) ;   4955 extern void set_inferior_target_data(struct thread_info * , void * ) ;
4956 extern void *inferior_regcache_data(struct thread_info * ) ;   4956 extern void *inferior_regcache_data(struct thread_info * ) ;
4957 extern void set_inferior_regcache_data(struct thread_info * , void * ) ;   4957 extern void set_inferior_regcache_data(struct thread_info * , void * ) ;
4958 extern void change_inferior_id(struct inferior_list *list ,   4958 extern void change_inferior_id(struct inferior_list *list ,
4959                                unsigned long new_id ) ;   4959                                unsigned long new_id ) ;
4960 extern unsigned long cont_thread ;   4960 extern unsigned long cont_thread ;
4961 extern unsigned long general_thread ;   4961 extern unsigned long general_thread ;
4962 extern unsigned long step_thread ;   4962 extern unsigned long step_thread ;
4963 extern unsigned long thread_from_wait ;   4963 extern unsigned long thread_from_wait ;
4964 extern unsigned long old_thread_from_wait ;   4964 extern unsigned long old_thread_from_wait ;
4965 extern jmp_buf toplevel ;   4965 extern jmp_buf toplevel ;
4966 extern Bool noack_mode ;   4966 extern Bool noack_mode ;
4967 extern int putpkt(char *buf ) ;   4967 extern int putpkt(char *buf ) ;
4968 extern int putpkt_binary(char *buf , int len ) ;   4968 extern int putpkt_binary(char *buf , int len ) ;
4969 extern int getpkt(char *buf ) ;   4969 extern int getpkt(char *buf ) ;
4970 extern void remote_open(char *name ) ;   4970 extern void remote_open(char *name ) ;
4971 extern void remote_close(void) ;   4971 extern void remote_close(void) ;
4972 extern void sync_gdb_connection(void) ;   4972 extern void sync_gdb_connection(void) ;
4973 extern void write_ok(char *buf ) ;   4973 extern void write_ok(char *buf ) ;
4974 extern void write_enn(char *buf ) ;   4974 extern void write_enn(char *buf ) ;
4975 extern void convert_ascii_to_int(char *from , unsigned char *to , int n ) ;   4975 extern void convert_ascii_to_int(char *from , unsigned char *to , int n ) ;
4976 extern void convert_int_to_ascii(unsigned char *from , char *to , int n ) ;   4976 extern void convert_int_to_ascii(unsigned char *from , char *to , int n ) ;
4977 extern void prepare_resume_reply(char *buf , char status , unsigned char sig ) ;   4977 extern void prepare_resume_reply(char *buf , char status , unsigned char sig ) ;
4978 extern void decode_address(CORE_ADDR *addrp , char const   *start , int len ) ;   4978 extern void decode_address(CORE_ADDR *addrp , char const   *start , int len ) ;
4979 extern void decode_m_packet(char *from , CORE_ADDR *mem_addr_ptr ,   4979 extern void decode_m_packet(char *from , CORE_ADDR *mem_addr_ptr ,
4980                             unsigned int *len_ptr ) ;   4980                             unsigned int *len_ptr ) ;
4981 extern void decode_M_packet(char *from , CORE_ADDR *mem_addr_ptr ,   4981 extern void decode_M_packet(char *from , CORE_ADDR *mem_addr_ptr ,
4982                             unsigned int *len_ptr , unsigned char *to ) ;   4982                             unsigned int *len_ptr , unsigned char *to ) ;
4983 extern int decode_X_packet(char *from , int packet_len ,   4983 extern int decode_X_packet(char *from , int packet_len ,
4984                            CORE_ADDR *mem_addr_ptr , unsigned int *len_ptr ,   4984                            CORE_ADDR *mem_addr_ptr , unsigned int *len_ptr ,
4985                            unsigned char *to ) ;   4985                            unsigned char *to ) ;
4986 extern int unhexify(char *bin , char const   *hex , int count ) ;   4986 extern int unhexify(char *bin , char const   *hex , int count ) ;
4987 extern int hexify(char *hex , char const   *bin , int count ) ;   4987 extern int hexify(char *hex , char const   *bin , int count ) ;
4988 extern int remote_escape_output(gdb_byte const   *buffer , int len ,   4988 extern int remote_escape_output(gdb_byte const   *buffer , int len ,
4989                                 gdb_byte *out_buf , int *out_len ,   4989                                 gdb_byte *out_buf , int *out_len ,
4990                                 int out_maxlen ) ;   4990                                 int out_maxlen ) ;
4991 extern enum target_signal target_signal_from_host(int hostsig ) ;   4991 extern enum target_signal target_signal_from_host(int hostsig ) ;
4992 extern int target_signal_to_host_p(enum target_signal oursig ) ;   4992 extern int target_signal_to_host_p(enum target_signal oursig ) ;
4993 extern int target_signal_to_host(enum target_signal oursig ) ;   4993 extern int target_signal_to_host(enum target_signal oursig ) ;
4994 extern char *target_signal_to_name(enum target_signal  ) ;   4994 extern char *target_signal_to_name(enum target_signal  ) ;
4995 extern  __attribute__((__noreturn__)) void ( /* format attribute */  error)(char const   *string   4995 extern  __attribute__((__noreturn__)) void ( /* format attribute */  error)(char const   *string
4996                                                                             , ...) ;   4996                                                                             , ...) ;
4997 extern void ( /* format attribute */  sr_perror)(SysRes sr , char *string  , ...) ;   4997 extern void ( /* format attribute */  sr_perror)(SysRes sr , char *string  , ...) ;
4998 extern  __attribute__((__noreturn__)) void ( /* format attribute */  fatal)(char const   *string   4998 extern  __attribute__((__noreturn__)) void ( /* format attribute */  fatal)(char const   *string
4999                                                                             , ...) ;   4999                                                                             , ...) ;
5000 extern void ( /* format attribute */  warning)(char const   *string  , ...) ;   5000 extern void ( /* format attribute */  warning)(char const   *string  , ...) ;
5001 extern void init_registers(void) ;   5001 extern void init_registers(void) ;
5002 extern char const   version[] ;   5002 extern char const   version[] ;
5003 void ( __attribute__((__regparm__(1))) vgPlain_helperc_CallDebugger)(HWord iaddr ) ;   5003 void ( __attribute__((__regparm__(1))) vgPlain_helperc_CallDebugger)(HWord iaddr ) ;
5004 void ( __attribute__((__regparm__(1))) vgPlain_helperc_invalidate_if_not_gdbserved)(Addr addr ) ;   5004 void ( __attribute__((__regparm__(1))) vgPlain_helperc_invalidate_if_not_gdbserved)(Addr addr ) ;
5005 static void invalidate_current_ip(ThreadId tid , char *who ) ;   5005 static void invalidate_current_ip(ThreadId tid , char *who ) ;
5006 static char *ppCallReason(CallReason reason )   5006 static char *ppCallReason(CallReason reason )
5007 {   5007 {
5008   long tmp ;   5008   long tmp ;
5009     5009  
5010   {   5010   {
5011   switch ((unsigned int )reason) {   5011   switch ((unsigned int )reason) {
5012   case 0U:   5012   case 0U:
5013   return ((char *)"init_reason");   5013   return ((char *)"init_reason");
5014   case 1U:   5014   case 1U:
5015   return ((char *)"vgdb_reason");   5015   return ((char *)"vgdb_reason");
5016   case 2U:   5016   case 2U:
5017   return ((char *)"core_reason");   5017   return ((char *)"core_reason");
5018   case 3U:   5018   case 3U:
5019   return ((char *)"break_reason");   5019   return ((char *)"break_reason");
5020   case 4U:   5020   case 4U:
5021   return ((char *)"watch_reason");   5021   return ((char *)"watch_reason");
5022   case 5U:   5022   case 5U:
5023   return ((char *)"signal_reason");   5023   return ((char *)"signal_reason");
5024   default:   5024   default:
5025   tmp = __builtin_expect(0L, 1L);   5025   tmp = __builtin_expect(0L, 1L);
5026   if (tmp) {   5026   if (tmp) {
5027     5027  
5028   } else {   5028   } else {
5029     vgPlain_assert_fail((Bool )1, (Char const   *)"0",   5029     vgPlain_assert_fail((Bool )1, (Char const   *)"0",
5030                         (Char const   *)"m_gdbserver/m_gdbserver.c", 81,   5030                         (Char const   *)"m_gdbserver/m_gdbserver.c", 81,
5031                         (Char const   *)"ppCallReason", "");   5031                         (Char const   *)"ppCallReason", "");
5032   }   5032   }
5033   }   5033   }
5034   return ((char *)0);   5034   return ((char *)0);
5035 }   5035 }
5036 }   5036 }
5037 static Addr ignore_this_break_once  =    (Addr )0;   5037 static Addr ignore_this_break_once  =    (Addr )0;
5038 static void call_gdbserver(ThreadId tid , CallReason reason ) ;   5038 static void call_gdbserver(ThreadId tid , CallReason reason ) ;
5039 static void *C2v(CORE_ADDR addr )   5039 static void *C2v(CORE_ADDR addr )
5040 {   5040 {
5041     5041  
5042     5042  
5043   {   5043   {
5044   return ((void *)addr);   5044   return ((void *)addr);
5045 }   5045 }
5046 }   5046 }
5047 static char buf[2][200]  ;   5047 static char buf[2][200]  ;
5048 static char *sym(Addr addr , Bool is_code ) ;   5048 static char *sym(Addr addr , Bool is_code ) ;
5049 static int w  =    0;   5049 static int w  =    0;
5050 static char *sym(Addr addr , Bool is_code )   5050 static char *sym(Addr addr , Bool is_code )
5051 {   5051 {
5052   PtrdiffT offset ;   5052   PtrdiffT offset ;
5053   int tmp ;   5053   int tmp ;
5054     5054  
5055   {   5055   {
5056   if (w == 2) {   5056   if (w == 2) {
5057     w = 0;   5057     w = 0;
5058   } else {   5058   } else {
5059     5059  
5060   }   5060   }
5061   if (is_code) {   5061   if (is_code) {
5062     vgPlain_describe_IP(addr, (Char *)(buf[w]), 200);   5062     vgPlain_describe_IP(addr, (Char *)(buf[w]), 200);
5063   } else {   5063   } else {
5064     vgPlain_get_datasym_and_offset(addr, (Char *)(buf[w]), 200, & offset);   5064     vgPlain_get_datasym_and_offset(addr, (Char *)(buf[w]), 200, & offset);
5065   }   5065   }
5066   tmp = w;   5066   tmp = w;
5067   w ++;   5067   w ++;
5068   return (buf[tmp]);   5068   return (buf[tmp]);
5069 }   5069 }
5070 }   5070 }
5071 static int gdbserver_called  =    0;   5071 static int gdbserver_called  =    0;
5072 static int gdbserver_exited  =    0;   5072 static int gdbserver_exited  =    0;
5073 static VgHashTable gs_addresses  =    (VgHashTable )((void *)0);   5073 static VgHashTable gs_addresses  =    (VgHashTable )((void *)0);
5074 static Addr HT_addr(Addr addr )   5074 static Addr HT_addr(Addr addr )
5075 {   5075 {
5076     5076  
5077     5077  
5078   {   5078   {
5079   return (addr);   5079   return (addr);
5080 }   5080 }
5081 }   5081 }
5082 static void add_gs_address(Addr addr , GS_Kind kind , char *from )   5082 static void add_gs_address(Addr addr , GS_Kind kind , char *from )
5083 {   5083 {
5084   GS_Address *p ;   5084   GS_Address *p ;
5085   void *tmp ;   5085   void *tmp ;
5086     5086  
5087   {   5087   {
5088   tmp = vgPlain_arena_malloc(0, from, (SizeT )sizeof(GS_Address ));   5088   tmp = vgPlain_arena_malloc(0, from, (SizeT )sizeof(GS_Address ));
5089   p = (GS_Address *)tmp;   5089   p = (GS_Address *)tmp;
5090   p->addr = HT_addr(addr);   5090   p->addr = HT_addr(addr);
5091   p->kind = kind;   5091   p->kind = kind;
5092   vgPlain_HT_add_node(gs_addresses, (void *)p);   5092   vgPlain_HT_add_node(gs_addresses, (void *)p);
5093   vgPlain_discard_translations((Addr64 )addr, (ULong )2, from);   5093   vgPlain_discard_translations((Addr64 )addr, (ULong )2, from);
5094   return;   5094   return;
5095 }   5095 }
5096 }   5096 }
5097 static void remove_gs_address(GS_Address *g , char *from )   5097 static void remove_gs_address(GS_Address *g , char *from )
5098 {   5098 {
5099     5099  
5100     5100  
5101   {   5101   {
5102   vgPlain_HT_remove(gs_addresses, g->addr);   5102   vgPlain_HT_remove(gs_addresses, g->addr);
5103   vgPlain_discard_translations((Addr64 )g->addr, (ULong )2, from);   5103   vgPlain_discard_translations((Addr64 )g->addr, (ULong )2, from);
5104   vgPlain_arena_free(0, (void *)g);   5104   vgPlain_arena_free(0, (void *)g);
5105   return;   5105   return;
5106 }   5106 }
5107 }   5107 }
5108 char *vgPlain_ppPointKind(PointKind kind )   5108 char *vgPlain_ppPointKind(PointKind kind )
5109 {   5109 {
5110   long tmp ;   5110   long tmp ;
5111     5111  
5112   {   5112   {
5113   switch ((unsigned int )kind) {   5113   switch ((unsigned int )kind) {
5114   case 0U:   5114   case 0U:
5115   return ((char *)"software_breakpoint");   5115   return ((char *)"software_breakpoint");
5116   case 1U:   5116   case 1U:
5117   return ((char *)"hardware_breakpoint");   5117   return ((char *)"hardware_breakpoint");
5118   case 2U:   5118   case 2U:
5119   return ((char *)"write_watchpoint");   5119   return ((char *)"write_watchpoint");
5120   case 3U:   5120   case 3U:
5121   return ((char *)"read_watchpoint");   5121   return ((char *)"read_watchpoint");
5122   case 4U:   5122   case 4U:
5123   return ((char *)"access_watchpoint");   5123   return ((char *)"access_watchpoint");
5124   default:   5124   default:
5125   tmp = __builtin_expect(0L, 1L);   5125   tmp = __builtin_expect(0L, 1L);
5126   if (tmp) {   5126   if (tmp) {
5127     5127  
5128   } else {   5128   } else {
5129     vgPlain_assert_fail((Bool )1, (Char const   *)"0",   5129     vgPlain_assert_fail((Bool )1, (Char const   *)"0",
5130                         (Char const   *)"m_gdbserver/m_gdbserver.c", 230,   5130                         (Char const   *)"m_gdbserver/m_gdbserver.c", 230,
5131                         (Char const   *)"vgPlain_ppPointKind", "");   5131                         (Char const   *)"vgPlain_ppPointKind", "");
5132   }   5132   }
5133   }   5133   }
5134   return ((char *)0);   5134   return ((char *)0);
5135 }   5135 }
5136 }   5136 }
5137 static VgHashTable gs_watches  =    (VgHashTable )((void *)0);   5137 static VgHashTable gs_watches  =    (VgHashTable )((void *)0);
5138 static void breakpoint(Bool insert , CORE_ADDR addr )   5138 static void breakpoint(Bool insert , CORE_ADDR addr )
5139 {   5139 {
5140   GS_Address *g ;   5140   GS_Address *g ;
5141   Addr tmp ;   5141   Addr tmp ;
5142   void *tmp___0 ;   5142   void *tmp___0 ;
5143   Bool tmp___1 ;   5143   Bool tmp___1 ;
5144   char const   *tmp___2 ;   5144   char const   *tmp___2 ;
5145   char const   *tmp___3 ;   5145   char const   *tmp___3 ;
5146   void *tmp___4 ;   5146   void *tmp___4 ;
5147   Int tmp___5 ;   5147   Int tmp___5 ;
5148   int tmp___6 ;   5148   int tmp___6 ;
5149   long tmp___7 ;   5149   long tmp___7 ;
5150     5150  
5151   {   5151   {
5152   tmp = HT_addr(addr);   5152   tmp = HT_addr(addr);
5153   tmp___0 = vgPlain_HT_lookup(gs_addresses, tmp);   5153   tmp___0 = vgPlain_HT_lookup(gs_addresses, tmp);
5154   g = (GS_Address *)tmp___0;   5154   g = (GS_Address *)tmp___0;
5155   if (insert) {   5155   if (insert) {
5156     if ((unsigned int )g == (unsigned int )((void *)0)) {   5156     if ((unsigned int )g == (unsigned int )((void *)0)) {
5157       add_gs_address(addr, (GS_Kind )0, (char *)"m_gdbserver breakpoint insert");   5157       add_gs_address(addr, (GS_Kind )0, (char *)"m_gdbserver breakpoint insert");
5158     } else {   5158     } else {
5159       g->kind = (GS_Kind )0;   5159       g->kind = (GS_Kind )0;
5160     }   5160     }
5161   } else   5161   } else
5162   if ((unsigned int )g != (unsigned int )((void *)0)) {   5162   if ((unsigned int )g != (unsigned int )((void *)0)) {
5163     if ((unsigned int )g->kind == 0U) {   5163     if ((unsigned int )g->kind == 0U) {
5164       tmp___1 = valgrind_single_stepping();   5164       tmp___1 = valgrind_single_stepping();
5165       if (tmp___1) {   5165       if (tmp___1) {
5166         g->kind = (GS_Kind )1;   5166         g->kind = (GS_Kind )1;
5167       } else {   5167       } else {
5168         remove_gs_address(g, (char *)"m_gdbserver breakpoint remove");   5168         remove_gs_address(g, (char *)"m_gdbserver breakpoint remove");
5169       }   5169       }
5170     } else {   5170     } else {
5171       goto _L;   5171       goto _L;
5172     }   5172     }
5173   } else {   5173   } else {
5174     _L: /* CIL Label */   5174     _L: /* CIL Label */
5175     while (1) {   5175     while (1) {
5176       tmp___5 = vgPlain_debugLog_getLevel();   5176       tmp___5 = vgPlain_debugLog_getLevel();
5177       if (tmp___5 >= 1) {   5177       if (tmp___5 >= 1) {
5178         tmp___6 = 1;   5178         tmp___6 = 1;
5179       } else {   5179       } else {
5180         tmp___6 = 0;   5180         tmp___6 = 0;
5181       }   5181       }
5182       tmp___7 = __builtin_expect((long )tmp___6, 0L);   5182       tmp___7 = __builtin_expect((long )tmp___6, 0L);
5183       if (tmp___7) {   5183       if (tmp___7) {
5184         if ((unsigned int )g == (unsigned int )((void *)0)) {   5184         if ((unsigned int )g == (unsigned int )((void *)0)) {
5185           tmp___3 = "NULL";   5185           tmp___3 = "NULL";
5186         } else {   5186         } else {
5187           if ((unsigned int )g->kind == 1U) {   5187           if ((unsigned int )g->kind == 1U) {
5188             tmp___2 = "GS_jump";   5188             tmp___2 = "GS_jump";
5189           } else {   5189           } else {
5190             tmp___2 = "GS_break";   5190             tmp___2 = "GS_break";
5191           }   5191           }
5192           tmp___3 = tmp___2;   5192           tmp___3 = tmp___2;
5193         }   5193         }
5194         tmp___4 = C2v(addr);   5194         tmp___4 = C2v(addr);
5195         vgPlain_debugLog(1, "gdbsrv", "remove break addr %p %s\n", tmp___4,   5195         vgPlain_debugLog(1, "gdbsrv", "remove break addr %p %s\n", tmp___4,
5196                          tmp___3);   5196                          tmp___3);
5197       } else {   5197       } else {
5198     5198  
5199       }   5199       }
5200       break;   5200       break;
5201     }   5201     }
5202   }   5202   }
5203   return;   5203   return;
5204 }   5204 }
5205 }   5205 }
5206 static Bool (*tool_watchpoint)(PointKind kind , Bool insert , Addr addr ,   5206 static Bool (*tool_watchpoint)(PointKind kind , Bool insert , Addr addr ,
5207                                SizeT len )  =    (Bool (*)(PointKind kind , Bool insert , Addr addr , SizeT len ))((void *)0);   5207                                SizeT len )  =    (Bool (*)(PointKind kind , Bool insert , Addr addr , SizeT len ))((void *)0);
5208 void vgPlain_needs_watchpoint(Bool (*watchpoint)(PointKind kind , Bool insert ,   5208 void vgPlain_needs_watchpoint(Bool (*watchpoint)(PointKind kind , Bool insert ,
5209                                                  Addr addr , SizeT len ) )   5209                                                  Addr addr , SizeT len ) )
5210 {   5210 {
5211     5211  
5212     5212  
5213   {   5213   {
5214   tool_watchpoint = watchpoint;   5214   tool_watchpoint = watchpoint;
5215   return;   5215   return;
5216 }   5216 }
5217 }   5217 }
5218 Bool vgPlain_gdbserver_point(PointKind kind , Bool insert , Addr addr , int len )   5218 Bool vgPlain_gdbserver_point(PointKind kind , Bool insert , Addr addr , int len )
5219 {   5219 {
5220   Bool res ;   5220   Bool res ;
5221   GS_Watch *g ;   5221   GS_Watch *g ;
5222   Bool is_code ;   5222   Bool is_code ;
5223   int tmp ;   5223   int tmp ;
5224   char *tmp___0 ;   5224   char *tmp___0 ;
5225   void *tmp___1 ;   5225   void *tmp___1 ;
5226   char *tmp___2 ;   5226   char *tmp___2 ;
5227   char const   *tmp___3 ;   5227   char const   *tmp___3 ;
5228   Int tmp___4 ;   5228   Int tmp___4 ;
5229   int tmp___5 ;   5229   int tmp___5 ;
5230   long tmp___6 ;   5230   long tmp___6 ;
5231   int tmp___7 ;   5231   int tmp___7 ;
5232   long tmp___8 ;   5232   long tmp___8 ;
5233   void *tmp___9 ;   5233   void *tmp___9 ;
5234   void *tmp___10 ;   5234   void *tmp___10 ;
5235   long tmp___11 ;   5235   long tmp___11 ;
5236     5236  
5237   {   5237   {
5238   if ((unsigned int )kind == 0U) {   5238   if ((unsigned int )kind == 0U) {
5239     tmp = 1;   5239     tmp = 1;
5240   } else   5240   } else
5241   if ((unsigned int )kind == 1U) {   5241   if ((unsigned int )kind == 1U) {
5242     tmp = 1;   5242     tmp = 1;
5243   } else {   5243   } else {
5244     tmp = 0;   5244     tmp = 0;
5245   }   5245   }
5246   is_code = (Bool )tmp;   5246   is_code = (Bool )tmp;
5247   while (1) {   5247   while (1) {
5248     tmp___4 = vgPlain_debugLog_getLevel();   5248     tmp___4 = vgPlain_debugLog_getLevel();
5249     if (tmp___4 >= 1) {   5249     if (tmp___4 >= 1) {
5250       tmp___5 = 1;   5250       tmp___5 = 1;
5251     } else {   5251     } else {
5252       tmp___5 = 0;   5252       tmp___5 = 0;
5253     }   5253     }
5254     tmp___6 = __builtin_expect((long )tmp___5, 0L);   5254     tmp___6 = __builtin_expect((long )tmp___5, 0L);
5255     if (tmp___6) {   5255     if (tmp___6) {
5256       tmp___0 = sym(addr, is_code);   5256       tmp___0 = sym(addr, is_code);
5257       tmp___1 = C2v(addr);   5257       tmp___1 = C2v(addr);
5258       tmp___2 = vgPlain_ppPointKind(kind);   5258       tmp___2 = vgPlain_ppPointKind(kind);
5259       if (insert) {   5259       if (insert) {
5260         tmp___3 = "insert";   5260         tmp___3 = "insert";
5261       } else {   5261       } else {
5262         tmp___3 = "remove";   5262         tmp___3 = "remove";
5263       }   5263       }
5264       vgPlain_debugLog(1, "gdbsrv", "%s %s at addr %p %s\n", tmp___3, tmp___2,   5264       vgPlain_debugLog(1, "gdbsrv", "%s %s at addr %p %s\n", tmp___3, tmp___2,
5265                        tmp___1, tmp___0);   5265                        tmp___1, tmp___0);
5266     } else {   5266     } else {
5267     5267  
5268     }   5268     }
5269     break;   5269     break;
5270   }   5270   }
5271   if (is_code) {   5271   if (is_code) {
5272     breakpoint(insert, addr);   5272     breakpoint(insert, addr);
5273     return ((Bool )1);   5273     return ((Bool )1);
5274   } else {   5274   } else {
5275     5275  
5276   }   5276   }
5277   if ((unsigned int )kind == 4U) {   5277   if ((unsigned int )kind == 4U) {
5278     tmp___7 = 1;   5278     tmp___7 = 1;
5279   } else   5279   } else
5280   if ((unsigned int )kind == 3U) {   5280   if ((unsigned int )kind == 3U) {
5281     tmp___7 = 1;   5281     tmp___7 = 1;
5282   } else   5282   } else
5283   if ((unsigned int )kind == 2U) {   5283   if ((unsigned int )kind == 2U) {
5284     tmp___7 = 1;   5284     tmp___7 = 1;
5285   } else {   5285   } else {
5286     tmp___7 = 0;   5286     tmp___7 = 0;
5287   }   5287   }
5288   tmp___8 = __builtin_expect((long )tmp___7, 1L);   5288   tmp___8 = __builtin_expect((long )tmp___7, 1L);
5289   if (tmp___8) {   5289   if (tmp___8) {
5290     5290  
5291   } else {   5291   } else {
5292     vgPlain_assert_fail((Bool )1,   5292     vgPlain_assert_fail((Bool )1,
5293                         (Char const   *)"kind == access_watchpoint || kind == read_watchpoint || kind == write_watchpoint",   5293                         (Char const   *)"kind == access_watchpoint || kind == read_watchpoint || kind == write_watchpoint",
5294                         (Char const   *)"m_gdbserver/m_gdbserver.c", 314,   5294                         (Char const   *)"m_gdbserver/m_gdbserver.c", 314,
5295                         (Char const   *)"vgPlain_gdbserver_point", "");   5295                         (Char const   *)"vgPlain_gdbserver_point", "");
5296   }   5296   }
5297   if ((unsigned int )tool_watchpoint == (unsigned int )((void *)0)) {   5297   if ((unsigned int )tool_watchpoint == (unsigned int )((void *)0)) {
5298     return ((Bool )0);   5298     return ((Bool )0);
5299   } else {   5299   } else {
5300     5300  
5301   }   5301   }
5302   res = (*tool_watchpoint)(kind, insert, addr, (SizeT )len);   5302   res = (*tool_watchpoint)(kind, insert, addr, (SizeT )len);
5303   if (! res) {   5303   if (! res) {
5304     return ((Bool )0);   5304     return ((Bool )0);
5305   } else {   5305   } else {
5306     5306  
5307   }   5307   }
5308   tmp___9 = vgPlain_HT_lookup(gs_watches, addr);   5308   tmp___9 = vgPlain_HT_lookup(gs_watches, addr);
5309   g = (GS_Watch *)tmp___9;   5309   g = (GS_Watch *)tmp___9;
5310   if (insert) {   5310   if (insert) {
5311     if ((unsigned int )g == (unsigned int )((void *)0)) {   5311     if ((unsigned int )g == (unsigned int )((void *)0)) {
5312       tmp___10 = vgPlain_arena_malloc(0, (HChar *)"gdbserver_point watchpoint",   5312       tmp___10 = vgPlain_arena_malloc(0, (HChar *)"gdbserver_point watchpoint",
5313                                       (SizeT )sizeof(GS_Watch ));   5313                                       (SizeT )sizeof(GS_Watch ));
5314       g = (GS_Watch *)tmp___10;   5314       g = (GS_Watch *)tmp___10;
5315       g->addr = addr;   5315       g->addr = addr;
5316       g->len = (SizeT )len;   5316       g->len = (SizeT )len;
5317       g->kind = kind;   5317       g->kind = kind;
5318       vgPlain_HT_add_node(gs_watches, (void *)g);   5318       vgPlain_HT_add_node(gs_watches, (void *)g);
5319     } else {   5319     } else {
5320       g->kind = kind;   5320       g->kind = kind;
5321     }   5321     }
5322   } else {   5322   } else {
5323     tmp___11 = __builtin_expect((long )(! (! ((unsigned int )g != (unsigned int )((void *)0)))),   5323     tmp___11 = __builtin_expect((long )(! (! ((unsigned int )g != (unsigned int )((void *)0)))),
5324                                 1L);   5324                                 1L);
5325     if (tmp___11) {   5325     if (tmp___11) {
5326     5326  
5327     } else {   5327     } else {
5328       vgPlain_assert_fail((Bool )1, (Char const   *)"g != NULL",   5328       vgPlain_assert_fail((Bool )1, (Char const   *)"g != NULL",
5329                           (Char const   *)"m_gdbserver/m_gdbserver.c", 336,   5329                           (Char const   *)"m_gdbserver/m_gdbserver.c", 336,
5330                           (Char const   *)"vgPlain_gdbserver_point", "");   5330                           (Char const   *)"vgPlain_gdbserver_point", "");
5331     }   5331     }
5332     vgPlain_HT_remove(gs_watches, g->addr);   5332     vgPlain_HT_remove(gs_watches, g->addr);
5333     vgPlain_arena_free(0, (void *)g);   5333     vgPlain_arena_free(0, (void *)g);
5334   }   5334   }
5335   return ((Bool )1);   5335   return ((Bool )1);
5336 }   5336 }
5337 }   5337 }
5338 Bool vgPlain_is_watched(PointKind kind , Addr addr , Int szB )   5338 Bool vgPlain_is_watched(PointKind kind , Addr addr , Int szB )
5339 {   5339 {
5340   GS_Watch *g ;   5340   GS_Watch *g ;
5341   Bool watched ;   5341   Bool watched ;
5342   ThreadId tid ;   5342   ThreadId tid ;
5343   Addr to ;   5343   Addr to ;
5344   int tmp ;   5344   int tmp ;
5345   long tmp___0 ;   5345   long tmp___0 ;
5346   void *tmp___1 ;   5346   void *tmp___1 ;
5347   char *tmp___2 ;   5347   char *tmp___2 ;
5348   Int tmp___3 ;   5348   Int tmp___3 ;
5349   int tmp___4 ;   5349   int tmp___4 ;
5350   long tmp___5 ;   5350   long tmp___5 ;
5351   long tmp___6 ;   5351   long tmp___6 ;
5352   void *tmp___7 ;   5352   void *tmp___7 ;
5353     5353  
5354   {   5354   {
5355   watched = (Bool )0;   5355   watched = (Bool )0;
5356   tid = vgPlain_running_tid;   5356   tid = vgPlain_running_tid;
5357   if (! gdbserver_called) {   5357   if (! gdbserver_called) {
5358     return ((Bool )0);   5358     return ((Bool )0);
5359   } else {   5359   } else {
5360     5360  
5361   }   5361   }
5362   to = addr + (Addr )szB;   5362   to = addr + (Addr )szB;
5363   if ((unsigned int )kind == 4U) {   5363   if ((unsigned int )kind == 4U) {
5364     tmp = 1;   5364     tmp = 1;
5365   } else   5365   } else
5366   if ((unsigned int )kind == 3U) {   5366   if ((unsigned int )kind == 3U) {
5367     tmp = 1;   5367     tmp = 1;
5368   } else   5368   } else
5369   if ((unsigned int )kind == 2U) {   5369   if ((unsigned int )kind == 2U) {
5370     tmp = 1;   5370     tmp = 1;
5371   } else {   5371   } else {
5372     tmp = 0;   5372     tmp = 0;
5373   }   5373   }
5374   tmp___0 = __builtin_expect((long )tmp, 1L);   5374   tmp___0 = __builtin_expect((long )tmp, 1L);
5375   if (tmp___0) {   5375   if (tmp___0) {
5376     5376  
5377   } else {   5377   } else {
5378     vgPlain_assert_fail((Bool )1,   5378     vgPlain_assert_fail((Bool )1,
5379                         (Char const   *)"kind == access_watchpoint || kind == read_watchpoint || kind == write_watchpoint",   5379                         (Char const   *)"kind == access_watchpoint || kind == read_watchpoint || kind == write_watchpoint",
5380                         (Char const   *)"m_gdbserver/m_gdbserver.c", 356,   5380                         (Char const   *)"m_gdbserver/m_gdbserver.c", 356,
5381                         (Char const   *)"vgPlain_is_watched", "");   5381                         (Char const   *)"vgPlain_is_watched", "");
5382   }   5382   }
5383   while (1) {   5383   while (1) {
5384     tmp___3 = vgPlain_debugLog_getLevel();   5384     tmp___3 = vgPlain_debugLog_getLevel();
5385     if (tmp___3 >= 1) {   5385     if (tmp___3 >= 1) {
5386       tmp___4 = 1;   5386       tmp___4 = 1;
5387     } else {   5387     } else {
5388       tmp___4 = 0;   5388       tmp___4 = 0;
5389     }   5389     }
5390     tmp___5 = __builtin_expect((long )tmp___4, 0L);   5390     tmp___5 = __builtin_expect((long )tmp___4, 0L);
5391     if (tmp___5) {   5391     if (tmp___5) {
5392       tmp___1 = C2v(addr);   5392       tmp___1 = C2v(addr);
5393       tmp___2 = vgPlain_ppPointKind(kind);   5393       tmp___2 = vgPlain_ppPointKind(kind);
5394       vgPlain_debugLog(1, "gdbsrv",   5394       vgPlain_debugLog(1, "gdbsrv",
5395                        "tid %d VG_(is_watched) %s addr %p szB %d\n", tid,   5395                        "tid %d VG_(is_watched) %s addr %p szB %d\n", tid,
5396                        tmp___2, tmp___1, szB);   5396                        tmp___2, tmp___1, szB);
5397     } else {   5397     } else {
5398     5398  
5399     }   5399     }
5400     break;   5400     break;
5401   }   5401   }
5402   vgPlain_HT_ResetIter(gs_watches);   5402   vgPlain_HT_ResetIter(gs_watches);
5403   while (1) {   5403   while (1) {
5404     tmp___7 = vgPlain_HT_Next(gs_watches);   5404     tmp___7 = vgPlain_HT_Next(gs_watches);
5405     g = (GS_Watch *)tmp___7;   5405     g = (GS_Watch *)tmp___7;
5406     if (g) {   5406     if (g) {
5407     5407  
5408     } else {   5408     } else {
5409       break;   5409       break;
5410     }   5410     }
5411     switch ((unsigned int )g->kind) {   5411     switch ((unsigned int )g->kind) {
5412     case 1U:   5412     case 1U:
5413     case 0U:   5413     case 0U:
5414     break;   5414     break;
5415     case 2U:   5415     case 2U:
5416     case 3U:   5416     case 3U:
5417     case 4U:   5417     case 4U:
5418     if (to <= g->addr) {   5418     if (to <= g->addr) {
5419       continue;   5419       continue;
5420     } else   5420     } else
5421     if (addr >= g->addr + g->len) {   5421     if (addr >= g->addr + g->len) {
5422       continue;   5422       continue;
5423     } else {   5423     } else {
5424     5424  
5425     }   5425     }
5426     watched = (Bool )1;   5426     watched = (Bool )1;
5427     if ((unsigned int )kind == 4U) {   5427     if ((unsigned int )kind == 4U) {
5428       goto _L;   5428       goto _L;
5429     } else   5429     } else
5430     if ((unsigned int )g->kind == 4U) {   5430     if ((unsigned int )g->kind == 4U) {
5431       goto _L;   5431       goto _L;
5432     } else   5432     } else
5433     if ((unsigned int )g->kind == (unsigned int )kind) {   5433     if ((unsigned int )g->kind == (unsigned int )kind) {
5434       _L: /* CIL Label */   5434       _L: /* CIL Label */
5435       if (g->addr <= addr) {   5435       if (g->addr <= addr) {
5436         vgPlain_set_watchpoint_stop_address(addr);   5436         vgPlain_set_watchpoint_stop_address(addr);
5437       } else {   5437       } else {
5438         vgPlain_set_watchpoint_stop_address(g->addr);   5438         vgPlain_set_watchpoint_stop_address(g->addr);
5439       }   5439       }
5440       if ((unsigned int )kind == 2U) {   5440       if ((unsigned int )kind == 2U) {
5441         valgrind_set_single_stepping((Bool )1);   5441         valgrind_set_single_stepping((Bool )1);
5442         invalidate_current_ip(tid, (char *)"m_gdbserver write watchpoint");   5442         invalidate_current_ip(tid, (char *)"m_gdbserver write watchpoint");
5443       } else {   5443       } else {
5444         call_gdbserver(tid, (CallReason )4);   5444         call_gdbserver(tid, (CallReason )4);
5445         vgPlain_set_watchpoint_stop_address((Addr )0);   5445         vgPlain_set_watchpoint_stop_address((Addr )0);
5446       }   5446       }
5447       return ((Bool )1);   5447       return ((Bool )1);
5448     } else {   5448     } else {
5449     5449  
5450     }   5450     }
5451     break;   5451     break;
5452     default:   5452     default:
5453     tmp___6 = __builtin_expect(0L, 1L);   5453     tmp___6 = __builtin_expect(0L, 1L);
5454     if (tmp___6) {   5454     if (tmp___6) {
5455     5455  
5456     } else {   5456     } else {
5457       vgPlain_assert_fail((Bool )1, (Char const   *)"0",   5457       vgPlain_assert_fail((Bool )1, (Char const   *)"0",
5458                           (Char const   *)"m_gdbserver/m_gdbserver.c", 410,   5458                           (Char const   *)"m_gdbserver/m_gdbserver.c", 410,
5459                           (Char const   *)"vgPlain_is_watched", "");   5459                           (Char const   *)"vgPlain_is_watched", "");
5460     }   5460     }
5461     }   5461     }
5462   }   5462   }
5463   return (watched);   5463   return (watched);
5464 }   5464 }
5465 }   5465 }
5466 static VgVgdb vgPlain_gdbserver_instrumentation_needed(VexGuestExtents *vge )   5466 static VgVgdb vgPlain_gdbserver_instrumentation_needed(VexGuestExtents *vge )
5467 {   5467 {
5468   GS_Address *g ;   5468   GS_Address *g ;
5469   int e ;   5469   int e ;
5470   Int tmp ;   5470   Int tmp ;
5471   int tmp___0 ;   5471   int tmp___0 ;
5472   long tmp___1 ;   5472   long tmp___1 ;
5473   Bool tmp___2 ;   5473   Bool tmp___2 ;
5474   Int tmp___3 ;   5474   Int tmp___3 ;
5475   char const   *tmp___4 ;   5475   char const   *tmp___4 ;
5476   char *tmp___5 ;   5476   char *tmp___5 ;
5477   void *tmp___6 ;   5477   void *tmp___6 ;
5478   Int tmp___7 ;   5478   Int tmp___7 ;
5479   int tmp___8 ;   5479   int tmp___8 ;
5480   long tmp___9 ;   5480   long tmp___9 ;
5481   Addr tmp___10 ;   5481   Addr tmp___10 ;
5482   Addr tmp___11 ;   5482   Addr tmp___11 ;
5483   void *tmp___12 ;   5483   void *tmp___12 ;
5484   Int tmp___13 ;   5484   Int tmp___13 ;
5485   int tmp___14 ;   5485   int tmp___14 ;
5486   long tmp___15 ;   5486   long tmp___15 ;
5487     5487  
5488   {   5488   {
5489   if (! gdbserver_called) {   5489   if (! gdbserver_called) {
5490     return ((VgVgdb )0);   5490     return ((VgVgdb )0);
5491   } else {   5491   } else {
5492     5492  
5493   }   5493   }
5494   tmp___2 = valgrind_single_stepping();   5494   tmp___2 = valgrind_single_stepping();
5495   if (tmp___2) {   5495   if (tmp___2) {
5496     while (1) {   5496     while (1) {
5497       tmp = vgPlain_debugLog_getLevel();   5497       tmp = vgPlain_debugLog_getLevel();
5498       if (tmp >= 2) {   5498       if (tmp >= 2) {
5499         tmp___0 = 1;   5499         tmp___0 = 1;
5500       } else {   5500       } else {
5501         tmp___0 = 0;   5501         tmp___0 = 0;
5502       }   5502       }
5503       tmp___1 = __builtin_expect((long )tmp___0, 0L);   5503       tmp___1 = __builtin_expect((long )tmp___0, 0L);
5504       if (tmp___1) {   5504       if (tmp___1) {
5505         vgPlain_debugLog(2, "gdbsrv",   5505         vgPlain_debugLog(2, "gdbsrv",
5506                          "gdbserver_instrumentation_needed due to single stepping\n");   5506                          "gdbserver_instrumentation_needed due to single stepping\n");
5507       } else {   5507       } else {
5508     5508  
5509       }   5509       }
5510       break;   5510       break;
5511     }   5511     }
5512     return ((VgVgdb )1);   5512     return ((VgVgdb )1);
5513   } else {   5513   } else {
5514     5514  
5515   }   5515   }
5516   if ((unsigned int )vgPlain_clo_vgdb == 1U) {   5516   if ((unsigned int )vgPlain_clo_vgdb == 1U) {
5517     tmp___3 = vgPlain_HT_count_nodes(gs_addresses);   5517     tmp___3 = vgPlain_HT_count_nodes(gs_addresses);
5518     if (tmp___3 == 0) {   5518     if (tmp___3 == 0) {
5519       return ((VgVgdb )0);   5519       return ((VgVgdb )0);
5520     } else {   5520     } else {
5521     5521  
5522     }   5522     }
5523   } else {   5523   } else {
5524     5524  
5525   }   5525   }
5526   vgPlain_HT_ResetIter(gs_addresses);   5526   vgPlain_HT_ResetIter(gs_addresses);
5527   while (1) {   5527   while (1) {
5528     tmp___12 = vgPlain_HT_Next(gs_addresses);   5528     tmp___12 = vgPlain_HT_Next(gs_addresses);
5529     g = (GS_Address *)tmp___12;   5529     g = (GS_Address *)tmp___12;
5530     if (g) {   5530     if (g) {
5531     5531  
5532     } else {   5532     } else {
5533       break;   5533       break;
5534     }   5534     }
5535     e = 0;   5535     e = 0;
5536     while (e < (int )vge->n_used) {   5536     while (e < (int )vge->n_used) {
5537       tmp___10 = HT_addr((Addr )vge->base[e]);   5537       tmp___10 = HT_addr((Addr )vge->base[e]);
5538       if (g->addr >= tmp___10) {   5538       if (g->addr >= tmp___10) {
5539         tmp___11 = HT_addr((Addr )vge->base[e]);   5539         tmp___11 = HT_addr((Addr )vge->base[e]);
5540         if (g->addr < tmp___11 + (Addr )vge->len[e]) {   5540         if (g->addr < tmp___11 + (Addr )vge->len[e]) {
5541           while (1) {   5541           while (1) {
5542             tmp___7 = vgPlain_debugLog_getLevel();   5542             tmp___7 = vgPlain_debugLog_getLevel();
5543             if (tmp___7 >= 2) {   5543             if (tmp___7 >= 2) {
5544               tmp___8 = 1;   5544               tmp___8 = 1;
5545             } else {   5545             } else {
5546               tmp___8 = 0;   5546               tmp___8 = 0;
5547             }   5547             }
5548             tmp___9 = __builtin_expect((long )tmp___8, 0L);   5548             tmp___9 = __builtin_expect((long )tmp___8, 0L);
5549             if (tmp___9) {   5549             if (tmp___9) {
5550               if ((unsigned int )g->kind == 1U) {   5550               if ((unsigned int )g->kind == 1U) {
5551                 tmp___4 = "GS_jump";   5551                 tmp___4 = "GS_jump";
5552               } else {   5552               } else {
5553                 tmp___4 = "GS_break";   5553                 tmp___4 = "GS_break";
5554               }   5554               }
5555               tmp___5 = sym(g->addr, (Bool )1);   5555               tmp___5 = sym(g->addr, (Bool )1);
5556               tmp___6 = C2v(g->addr);   5556               tmp___6 = C2v(g->addr);
5557               vgPlain_debugLog(2, "gdbsrv",   5557               vgPlain_debugLog(2, "gdbsrv",
5558                                "gdbserver_instrumentation_needed %p %s reason %s\n",   5558                                "gdbserver_instrumentation_needed %p %s reason %s\n",
5559                                tmp___6, tmp___5, tmp___4);   5559                                tmp___6, tmp___5, tmp___4);
5560             } else {   5560             } else {
5561     5561  
5562             }   5562             }
5563             break;   5563             break;
5564           }   5564           }
5565           return ((VgVgdb )1);   5565           return ((VgVgdb )1);
5566         } else {   5566         } else {
5567     5567  
5568         }   5568         }
5569       } else {   5569       } else {
5570     5570  
5571       }   5571       }
5572       e ++;   5572       e ++;
5573     }   5573     }
5574   }   5574   }
5575   if ((unsigned int )vgPlain_clo_vgdb == 2U) {   5575   if ((unsigned int )vgPlain_clo_vgdb == 2U) {
5576     while (1) {   5576     while (1) {
5577       tmp___13 = vgPlain_debugLog_getLevel();   5577       tmp___13 = vgPlain_debugLog_getLevel();
5578       if (tmp___13 >= 4) {   5578       if (tmp___13 >= 4) {
5579         tmp___14 = 1;   5579         tmp___14 = 1;
5580       } else {   5580       } else {
5581         tmp___14 = 0;   5581         tmp___14 = 0;
5582       }   5582       }
5583       tmp___15 = __builtin_expect((long )tmp___14, 0L);   5583       tmp___15 = __builtin_expect((long )tmp___14, 0L);
5584       if (tmp___15) {   5584       if (tmp___15) {
5585         vgPlain_debugLog(4, "gdbsrv",   5585         vgPlain_debugLog(4, "gdbsrv",
5586                          "gdbserver_instrumentation_needed due to VG_(clo_vgdb) == Vg_VgdbFull\n");   5586                          "gdbserver_instrumentation_needed due to VG_(clo_vgdb) == Vg_VgdbFull\n");
5587       } else {   5587       } else {
5588     5588  
5589       }   5589       }
5590       break;   5590       break;
5591     }   5591     }
5592     return ((VgVgdb )2);   5592     return ((VgVgdb )2);
5593   } else {   5593   } else {
5594     5594  
5595   }   5595   }
5596   return ((VgVgdb )0);   5596   return ((VgVgdb )0);
5597 }   5597 }
5598 }   5598 }
5599 static void clear_gdbserved_addresses(Bool clear_only_jumps )   5599 static void clear_gdbserved_addresses(Bool clear_only_jumps )
5600 {   5600 {
5601   GS_Address **ag ;   5601   GS_Address **ag ;
5602   UInt n_elems ;   5602   UInt n_elems ;
5603   int i ;   5603   int i ;
5604   Int tmp ;   5604   Int tmp ;
5605   Int tmp___0 ;   5605   Int tmp___0 ;
5606   int tmp___1 ;   5606   int tmp___1 ;
5607   long tmp___2 ;   5607   long tmp___2 ;
5608   VgHashNode **tmp___3 ;   5608   VgHashNode **tmp___3 ;
5609     5609  
5610   {   5610   {
5611   while (1) {   5611   while (1) {
5612     tmp___0 = vgPlain_debugLog_getLevel();   5612     tmp___0 = vgPlain_debugLog_getLevel();
5613     if (tmp___0 >= 1) {   5613     if (tmp___0 >= 1) {
5614       tmp___1 = 1;   5614       tmp___1 = 1;
5615     } else {   5615     } else {
5616       tmp___1 = 0;   5616       tmp___1 = 0;
5617     }   5617     }
5618     tmp___2 = __builtin_expect((long )tmp___1, 0L);   5618     tmp___2 = __builtin_expect((long )tmp___1, 0L);
5619     if (tmp___2) {   5619     if (tmp___2) {
5620       tmp = vgPlain_HT_count_nodes(gs_addresses);   5620       tmp = vgPlain_HT_count_nodes(gs_addresses);
5621       vgPlain_debugLog(1, "gdbsrv",   5621       vgPlain_debugLog(1, "gdbsrv",
5622                        "clear_gdbserved_addresses: scanning hash table nodes %d\n",   5622                        "clear_gdbserved_addresses: scanning hash table nodes %d\n",
5623                        tmp);   5623                        tmp);
5624     } else {   5624     } else {
5625     5625  
5626     }   5626     }
5627     break;   5627     break;
5628   }   5628   }
5629   tmp___3 = vgPlain_HT_to_array(gs_addresses, & n_elems);   5629   tmp___3 = vgPlain_HT_to_array(gs_addresses, & n_elems);
5630   ag = (GS_Address **)tmp___3;   5630   ag = (GS_Address **)tmp___3;
5631   i = 0;   5631   i = 0;
5632   while ((UInt )i < n_elems) {   5632   while ((UInt )i < n_elems) {
5633     if (! clear_only_jumps) {   5633     if (! clear_only_jumps) {
5634       remove_gs_address(*(ag + i), (char *)"clear_gdbserved_addresses");   5634       remove_gs_address(*(ag + i), (char *)"clear_gdbserved_addresses");
5635     } else   5635     } else
5636     if ((unsigned int )(*(ag + i))->kind == 1U) {   5636     if ((unsigned int )(*(ag + i))->kind == 1U) {
5637       remove_gs_address(*(ag + i), (char *)"clear_gdbserved_addresses");   5637       remove_gs_address(*(ag + i), (char *)"clear_gdbserved_addresses");
5638     } else {   5638     } else {
5639     5639  
5640     }   5640     }
5641     i ++;   5641     i ++;
5642   }   5642   }
5643   vgPlain_free((void *)ag);   5643   vgPlain_free((void *)ag);
5644   return;   5644   return;
5645 }   5645 }
5646 }   5646 }
5647 static void clear_watched_addresses(void)   5647 static void clear_watched_addresses(void)
5648 {   5648 {
5649   GS_Watch **ag ;   5649   GS_Watch **ag ;
5650   UInt n_elems ;   5650   UInt n_elems ;
5651   int i ;   5651   int i ;
5652   Int tmp ;   5652   Int tmp ;
5653   Int tmp___0 ;   5653   Int tmp___0 ;
5654   int tmp___1 ;   5654   int tmp___1 ;
5655   long tmp___2 ;   5655   long tmp___2 ;
5656   VgHashNode **tmp___3 ;   5656   VgHashNode **tmp___3 ;
5657   long tmp___4 ;   5657   long tmp___4 ;
5658   Bool tmp___5 ;   5658   Bool tmp___5 ;
5659     5659  
5660   {   5660   {
5661   while (1) {   5661   while (1) {
5662     tmp___0 = vgPlain_debugLog_getLevel();   5662     tmp___0 = vgPlain_debugLog_getLevel();
5663     if (tmp___0 >= 1) {   5663     if (tmp___0 >= 1) {
5664       tmp___1 = 1;   5664       tmp___1 = 1;
5665     } else {   5665     } else {
5666       tmp___1 = 0;   5666       tmp___1 = 0;
5667     }   5667     }
5668     tmp___2 = __builtin_expect((long )tmp___1, 0L);   5668     tmp___2 = __builtin_expect((long )tmp___1, 0L);
5669     if (tmp___2) {   5669     if (tmp___2) {
5670       tmp = vgPlain_HT_count_nodes(gs_watches);   5670       tmp = vgPlain_HT_count_nodes(gs_watches);
5671       vgPlain_debugLog(1, "gdbsrv",   5671       vgPlain_debugLog(1, "gdbsrv",
5672                        "clear_watched_addresses: scanning hash table nodes %d\n",   5672                        "clear_watched_addresses: scanning hash table nodes %d\n",
5673                        tmp);   5673                        tmp);
5674     } else {   5674     } else {
5675     5675  
5676     }   5676     }
5677     break;   5677     break;
5678   }   5678   }
5679   tmp___3 = vgPlain_HT_to_array(gs_watches, & n_elems);   5679   tmp___3 = vgPlain_HT_to_array(gs_watches, & n_elems);
5680   ag = (GS_Watch **)tmp___3;   5680   ag = (GS_Watch **)tmp___3;
5681   i = 0;   5681   i = 0;
5682   while ((UInt )i < n_elems) {   5682   while ((UInt )i < n_elems) {
5683     tmp___5 = vgPlain_gdbserver_point((*(ag + i))->kind, (Bool )0,   5683     tmp___5 = vgPlain_gdbserver_point((*(ag + i))->kind, (Bool )0,
5684                                       (*(ag + i))->addr, (int )(*(ag + i))->len);   5684                                       (*(ag + i))->addr, (int )(*(ag + i))->len);
5685     if (tmp___5) {   5685     if (tmp___5) {
5686     5686  
5687     } else {   5687     } else {
5688       tmp___4 = __builtin_expect(0L, 1L);   5688       tmp___4 = __builtin_expect(0L, 1L);
5689       if (tmp___4) {   5689       if (tmp___4) {
5690     5690  
5691       } else {   5691       } else {
5692         vgPlain_assert_fail((Bool )1, (Char const   *)"0",   5692         vgPlain_assert_fail((Bool )1, (Char const   *)"0",
5693                             (Char const   *)"m_gdbserver/m_gdbserver.c", 498,   5693                             (Char const   *)"m_gdbserver/m_gdbserver.c", 498,
5694                             (Char const   *)"clear_watched_addresses", "");   5694                             (Char const   *)"clear_watched_addresses", "");
5695       }   5695       }
5696     }   5696     }
5697     i ++;   5697     i ++;
5698   }   5698   }
5699   vgPlain_free((void *)ag);   5699   vgPlain_free((void *)ag);
5700   return;   5700   return;
5701 }   5701 }
5702 }   5702 }
5703 static void invalidate_if_jump_not_yet_gdbserved(Addr addr , char *from )   5703 static void invalidate_if_jump_not_yet_gdbserved(Addr addr , char *from )
5704 {   5704 {
5705   Addr tmp ;   5705   Addr tmp ;
5706   void *tmp___0 ;   5706   void *tmp___0 ;
5707     5707  
5708   {   5708   {
5709   tmp = HT_addr(addr);   5709   tmp = HT_addr(addr);
5710   tmp___0 = vgPlain_HT_lookup(gs_addresses, tmp);   5710   tmp___0 = vgPlain_HT_lookup(gs_addresses, tmp);
5711   if (tmp___0) {   5711   if (tmp___0) {
5712     return;   5712     return;
5713   } else {   5713   } else {
5714     5714  
5715   }   5715   }
5716   add_gs_address(addr, (GS_Kind )1, from);   5716   add_gs_address(addr, (GS_Kind )1, from);
5717   return;   5717   return;
5718 }   5718 }
5719 }   5719 }
5720 static void invalidate_current_ip(ThreadId tid , char *who )   5720 static void invalidate_current_ip(ThreadId tid , char *who )
5721 {   5721 {
5722   Addr tmp ;   5722   Addr tmp ;
5723     5723  
5724   {   5724   {
5725   tmp = vgPlain_get_IP(tid);   5725   tmp = vgPlain_get_IP(tid);
5726   invalidate_if_jump_not_yet_gdbserved(tmp, who);   5726   invalidate_if_jump_not_yet_gdbserved(tmp, who);
5727   return;   5727   return;
5728 }   5728 }
5729 }   5729 }
5730 void vgPlain_gdbserver_prerun_action(ThreadId tid )   5730 void vgPlain_gdbserver_prerun_action(ThreadId tid )
5731 {   5731 {
5732   Bool tmp ;   5732   Bool tmp ;
5733     5733  
5734   {   5734   {
5735   if (vgPlain_dyn_vgdb_error == 0) {   5735   if (vgPlain_dyn_vgdb_error == 0) {
5736     vgPlain_umsg("(action at startup) vgdb me ... \n");   5736     vgPlain_umsg("(action at startup) vgdb me ... \n");
5737     vgPlain_gdbserver(tid);   5737     vgPlain_gdbserver(tid);
5738   } else {   5738   } else {
5739     tmp = vgPlain_gdbserver_activity(tid);   5739     tmp = vgPlain_gdbserver_activity(tid);
5740     if (tmp) {   5740     if (tmp) {
5741       vgPlain_gdbserver(tid);   5741       vgPlain_gdbserver(tid);
5742     } else {   5742     } else {
5743     5743  
5744     }   5744     }
5745   }   5745   }
5746   return;   5746   return;
5747 }   5747 }
5748 }   5748 }
5749 static void gdbserver_cleanup_in_child_after_fork(ThreadId me )   5749 static void gdbserver_cleanup_in_child_after_fork(ThreadId me )
5750 {   5750 {
5751   Int tmp ;   5751   Int tmp ;
5752   Int tmp___0 ;   5752   Int tmp___0 ;
5753   int tmp___1 ;   5753   int tmp___1 ;
5754   long tmp___2 ;   5754   long tmp___2 ;
5755   long tmp___3 ;   5755   long tmp___3 ;
5756   long tmp___4 ;   5756   long tmp___4 ;
5757   long tmp___5 ;   5757   long tmp___5 ;
5758   long tmp___6 ;   5758   long tmp___6 ;
5759     5759  
5760   {   5760   {
5761   while (1) {   5761   while (1) {
5762     tmp___0 = vgPlain_debugLog_getLevel();   5762     tmp___0 = vgPlain_debugLog_getLevel();
5763     if (tmp___0 >= 1) {   5763     if (tmp___0 >= 1) {
5764       tmp___1 = 1;   5764       tmp___1 = 1;
5765     } else {   5765     } else {
5766       tmp___1 = 0;   5766       tmp___1 = 0;
5767     }   5767     }
5768     tmp___2 = __builtin_expect((long )tmp___1, 0L);   5768     tmp___2 = __builtin_expect((long )tmp___1, 0L);
5769     if (tmp___2) {   5769     if (tmp___2) {
5770       tmp = vgPlain_getpid();   5770       tmp = vgPlain_getpid();
5771       vgPlain_debugLog(1, "gdbsrv",   5771       vgPlain_debugLog(1, "gdbsrv",
5772                        "thread %d gdbserver_cleanup_in_child_after_fork pid %d\n",   5772                        "thread %d gdbserver_cleanup_in_child_after_fork pid %d\n",
5773                        me, tmp);   5773                        me, tmp);
5774     } else {   5774     } else {
5775     5775  
5776     }   5776     }
5777     break;   5777     break;
5778   }   5778   }
5779   remote_finish((FinishReason )2);   5779   remote_finish((FinishReason )2);
5780   if (gdbserver_called) {   5780   if (gdbserver_called) {
5781     gdbserver_called = 0;   5781     gdbserver_called = 0;
5782     tmp___3 = __builtin_expect((long )(! (! ((unsigned int )gs_addresses != (unsigned int )((void *)0)))),   5782     tmp___3 = __builtin_expect((long )(! (! ((unsigned int )gs_addresses != (unsigned int )((void *)0)))),
5783                                1L);   5783                                1L);
5784     if (tmp___3) {   5784     if (tmp___3) {
5785     5785  
5786     } else {   5786     } else {
5787       vgPlain_assert_fail((Bool )1, (Char const   *)"gs_addresses != NULL",   5787       vgPlain_assert_fail((Bool )1, (Char const   *)"gs_addresses != NULL",
5788                           (Char const   *)"m_gdbserver/m_gdbserver.c", 549,   5788                           (Char const   *)"m_gdbserver/m_gdbserver.c", 549,
5789                           (Char const   *)"gdbserver_cleanup_in_child_after_fork",   5789                           (Char const   *)"gdbserver_cleanup_in_child_after_fork",
5790                           "");   5790                           "");
5791     }   5791     }
5792     tmp___4 = __builtin_expect((long )(! (! ((unsigned int )gs_watches != (unsigned int )((void *)0)))),   5792     tmp___4 = __builtin_expect((long )(! (! ((unsigned int )gs_watches != (unsigned int )((void *)0)))),
5793                                1L);   5793                                1L);
5794     if (tmp___4) {   5794     if (tmp___4) {
5795     5795  
5796     } else {   5796     } else {
5797       vgPlain_assert_fail((Bool )1, (Char const   *)"gs_watches != NULL",   5797       vgPlain_assert_fail((Bool )1, (Char const   *)"gs_watches != NULL",
5798                           (Char const   *)"m_gdbserver/m_gdbserver.c", 550,   5798                           (Char const   *)"m_gdbserver/m_gdbserver.c", 550,
5799                           (Char const   *)"gdbserver_cleanup_in_child_after_fork",   5799                           (Char const   *)"gdbserver_cleanup_in_child_after_fork",
5800                           "");   5800                           "");
5801     }   5801     }
5802     clear_gdbserved_addresses((Bool )0);   5802     clear_gdbserved_addresses((Bool )0);
5803     vgPlain_HT_destruct(gs_addresses);   5803     vgPlain_HT_destruct(gs_addresses);
5804     gs_addresses = (VgHashTable )((void *)0);   5804     gs_addresses = (VgHashTable )((void *)0);
5805     clear_watched_addresses();   5805     clear_watched_addresses();
5806     vgPlain_HT_destruct(gs_watches);   5806     vgPlain_HT_destruct(gs_watches);
5807     gs_watches = (VgHashTable )((void *)0);   5807     gs_watches = (VgHashTable )((void *)0);
5808   } else {   5808   } else {
5809     tmp___5 = __builtin_expect((long )(! (! ((unsigned int )gs_addresses == (unsigned int )((void *)0)))),   5809     tmp___5 = __builtin_expect((long )(! (! ((unsigned int )gs_addresses == (unsigned int )((void *)0)))),
5810                                1L);   5810                                1L);
5811     if (tmp___5) {   5811     if (tmp___5) {
5812     5812  
5813     } else {   5813     } else {
5814       vgPlain_assert_fail((Bool )1, (Char const   *)"gs_addresses == NULL",   5814       vgPlain_assert_fail((Bool )1, (Char const   *)"gs_addresses == NULL",
5815                           (Char const   *)"m_gdbserver/m_gdbserver.c", 558,   5815                           (Char const   *)"m_gdbserver/m_gdbserver.c", 558,
5816                           (Char const   *)"gdbserver_cleanup_in_child_after_fork",   5816                           (Char const   *)"gdbserver_cleanup_in_child_after_fork",
5817                           "");   5817                           "");
5818     }   5818     }
5819     tmp___6 = __builtin_expect((long )(! (! ((unsigned int )gs_watches == (unsigned int )((void *)0)))),   5819     tmp___6 = __builtin_expect((long )(! (! ((unsigned int )gs_watches == (unsigned int )((void *)0)))),
5820                                1L);   5820                                1L);
5821     if (tmp___6) {   5821     if (tmp___6) {
5822     5822  
5823     } else {   5823     } else {
5824       vgPlain_assert_fail((Bool )1, (Char const   *)"gs_watches == NULL",   5824       vgPlain_assert_fail((Bool )1, (Char const   *)"gs_watches == NULL",
5825                           (Char const   *)"m_gdbserver/m_gdbserver.c", 559,   5825                           (Char const   *)"m_gdbserver/m_gdbserver.c", 559,
5826                           (Char const   *)"gdbserver_cleanup_in_child_after_fork",   5826                           (Char const   *)"gdbserver_cleanup_in_child_after_fork",
5827                           "");   5827                           "");
5828     }   5828     }
5829   }   5829   }
5830   if (vgPlain_clo_trace_children) {   5830   if (vgPlain_clo_trace_children) {
5831     vgPlain_gdbserver_prerun_action(me);   5831     vgPlain_gdbserver_prerun_action(me);
5832   } else {   5832   } else {
5833     5833  
5834   }   5834   }
5835   return;   5835   return;
5836 }   5836 }
5837 }   5837 }
5838 static void call_gdbserver(ThreadId tid , CallReason reason )   5838 static void call_gdbserver(ThreadId tid , CallReason reason )
5839 {   5839 {
5840   ThreadState *tst ;   5840   ThreadState *tst ;
5841   ThreadState *tmp ;   5841   ThreadState *tmp ;
5842   int stepping ;   5842   int stepping ;
5843   Addr saved_pc ;   5843   Addr saved_pc ;
5844   HChar const   *tmp___0 ;   5844   HChar const   *tmp___0 ;
5845   Int tmp___1 ;   5845   Int tmp___1 ;
5846   char *tmp___2 ;   5846   char *tmp___2 ;
5847   Int tmp___3 ;   5847   Int tmp___3 ;
5848   int tmp___4 ;   5848   int tmp___4 ;
5849   long tmp___5 ;   5849   long tmp___5 ;
5850   Bool tmp___6 ;   5850   Bool tmp___6 ;
5851   int tmp___7 ;   5851   int tmp___7 ;
5852   long tmp___8 ;   5852   long tmp___8 ;
5853   Int tmp___9 ;   5853   Int tmp___9 ;
5854   int tmp___10 ;   5854   int tmp___10 ;
5855   long tmp___11 ;   5855   long tmp___11 ;
5856   long tmp___12 ;   5856   long tmp___12 ;
5857   long tmp___13 ;   5857   long tmp___13 ;
5858   long tmp___14 ;   5858   long tmp___14 ;
5859   long tmp___15 ;   5859   long tmp___15 ;
5860   Bool tmp___16 ;   5860   Bool tmp___16 ;
5861   char *tmp___17 ;   5861   char *tmp___17 ;
5862   Int tmp___18 ;   5862   Int tmp___18 ;
5863   int tmp___19 ;   5863   int tmp___19 ;
5864   long tmp___20 ;   5864   long tmp___20 ;
5865   Bool tmp___21 ;   5865   Bool tmp___21 ;
5866   Addr tmp___22 ;   5866   Addr tmp___22 ;
5867   char *tmp___23 ;   5867   char *tmp___23 ;
5868   char *tmp___24 ;   5868   char *tmp___24 ;
5869   HChar const   *tmp___25 ;   5869   HChar const   *tmp___25 ;
5870   Int tmp___26 ;   5870   Int tmp___26 ;
5871   int tmp___27 ;   5871   int tmp___27 ;
5872   long tmp___28 ;   5872   long tmp___28 ;
5873   SysRes sres ;   5873   SysRes sres ;
5874   Addr tmp___29 ;   5874   Addr tmp___29 ;
5875     5875  
5876   {   5876   {
5877   tmp = vgPlain_get_ThreadState(tid);   5877   tmp = vgPlain_get_ThreadState(tid);
5878   tst = tmp;   5878   tst = tmp;
5879   while (1) {   5879   while (1) {
5880     tmp___3 = vgPlain_debugLog_getLevel();   5880     tmp___3 = vgPlain_debugLog_getLevel();
5881     if (tmp___3 >= 1) {   5881     if (tmp___3 >= 1) {
5882       tmp___4 = 1;   5882       tmp___4 = 1;
5883     } else {   5883     } else {
5884       tmp___4 = 0;   5884       tmp___4 = 0;
5885     }   5885     }
5886     tmp___5 = __builtin_expect((long )tmp___4, 0L);   5886     tmp___5 = __builtin_expect((long )tmp___4, 0L);
5887     if (tmp___5) {   5887     if (tmp___5) {
5888       tmp___0 = vgPlain_name_of_ThreadStatus(tst->status);   5888       tmp___0 = vgPlain_name_of_ThreadStatus(tst->status);
5889       tmp___1 = vgPlain_getpid();   5889       tmp___1 = vgPlain_getpid();
5890       tmp___2 = ppCallReason(reason);   5890       tmp___2 = ppCallReason(reason);
5891       vgPlain_debugLog(1, "gdbsrv",   5891       vgPlain_debugLog(1, "gdbsrv",
5892                        "entering call_gdbserver %s ... pid %d tid %d status %s sched_jmpbuf_valid %d\n",   5892                        "entering call_gdbserver %s ... pid %d tid %d status %s sched_jmpbuf_valid %d\n",
5893                        tmp___2, tmp___1, tid, tmp___0,   5893                        tmp___2, tmp___1, tid, tmp___0,
5894                        (int )tst->sched_jmpbuf_valid);   5894                        (int )tst->sched_jmpbuf_valid);
5895     } else {   5895     } else {
5896     5896  
5897     }   5897     }
5898     break;   5898     break;
5899   }   5899   }
5900   tmp___6 = vgPlain_is_valid_tid(tid);   5900   tmp___6 = vgPlain_is_valid_tid(tid);
5901   if (tmp___6) {   5901   if (tmp___6) {
5902     tmp___7 = 1;   5902     tmp___7 = 1;
5903   } else {   5903   } else {
5904     tmp___7 = 0;   5904     tmp___7 = 0;
5905   }   5905   }
5906   tmp___8 = __builtin_expect((long )tmp___7, 1L);   5906   tmp___8 = __builtin_expect((long )tmp___7, 1L);
5907   if (tmp___8) {   5907   if (tmp___8) {
5908     5908  
5909   } else {   5909   } else {
5910     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(is_valid_tid)(tid)",   5910     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(is_valid_tid)(tid)",
5911                         (Char const   *)"m_gdbserver/m_gdbserver.c", 588,   5911                         (Char const   *)"m_gdbserver/m_gdbserver.c", 588,
5912                         (Char const   *)"call_gdbserver", "");   5912                         (Char const   *)"call_gdbserver", "");
5913   }   5913   }
5914   saved_pc = vgPlain_get_IP(tid);   5914   saved_pc = vgPlain_get_IP(tid);
5915   if (gdbserver_exited) {   5915   if (gdbserver_exited) {
5916     while (1) {   5916     while (1) {
5917       tmp___9 = vgPlain_debugLog_getLevel();   5917       tmp___9 = vgPlain_debugLog_getLevel();
5918       if (tmp___9 >= 0) {   5918       if (tmp___9 >= 0) {
5919         tmp___10 = 1;   5919         tmp___10 = 1;
5920       } else {   5920       } else {
5921         tmp___10 = 0;   5921         tmp___10 = 0;
5922       }   5922       }
5923       tmp___11 = __builtin_expect((long )tmp___10, 0L);   5923       tmp___11 = __builtin_expect((long )tmp___10, 0L);
5924       if (tmp___11) {   5924       if (tmp___11) {
5925         vgPlain_debugLog(0, "gdbsrv",   5925         vgPlain_debugLog(0, "gdbsrv",
5926                          "call_gdbserver called when gdbserver_exited %d\n",   5926                          "call_gdbserver called when gdbserver_exited %d\n",
5927                          gdbserver_exited);   5927                          gdbserver_exited);
5928       } else {   5928       } else {
5929     5929  
5930       }   5930       }
5931       break;   5931       break;
5932     }   5932     }
5933     return;   5933     return;
5934   } else {   5934   } else {
5935     5935  
5936   }   5936   }
5937   if (gdbserver_called == 0) {   5937   if (gdbserver_called == 0) {
5938     tmp___12 = __builtin_expect((long )(! (! ((unsigned int )gs_addresses == (unsigned int )((void *)0)))),   5938     tmp___12 = __builtin_expect((long )(! (! ((unsigned int )gs_addresses == (unsigned int )((void *)0)))),
5939                                 1L);   5939                                 1L);
5940     if (tmp___12) {   5940     if (tmp___12) {
5941     5941  
5942     } else {   5942     } else {
5943       vgPlain_assert_fail((Bool )1, (Char const   *)"gs_addresses == NULL",   5943       vgPlain_assert_fail((Bool )1, (Char const   *)"gs_addresses == NULL",
5944                           (Char const   *)"m_gdbserver/m_gdbserver.c", 598,   5944                           (Char const   *)"m_gdbserver/m_gdbserver.c", 598,
5945                           (Char const   *)"call_gdbserver", "");   5945                           (Char const   *)"call_gdbserver", "");
5946     }   5946     }
5947     tmp___13 = __builtin_expect((long )(! (! ((unsigned int )gs_watches == (unsigned int )((void *)0)))),   5947     tmp___13 = __builtin_expect((long )(! (! ((unsigned int )gs_watches == (unsigned int )((void *)0)))),
5948                                 1L);   5948                                 1L);
5949     if (tmp___13) {   5949     if (tmp___13) {
5950     5950  
5951     } else {   5951     } else {
5952       vgPlain_assert_fail((Bool )1, (Char const   *)"gs_watches == NULL",   5952       vgPlain_assert_fail((Bool )1, (Char const   *)"gs_watches == NULL",
5953                           (Char const   *)"m_gdbserver/m_gdbserver.c", 599,   5953                           (Char const   *)"m_gdbserver/m_gdbserver.c", 599,
5954                           (Char const   *)"call_gdbserver", "");   5954                           (Char const   *)"call_gdbserver", "");
5955     }   5955     }
5956     gs_addresses = vgPlain_HT_construct((HChar *)"gdbserved_addresses");   5956     gs_addresses = vgPlain_HT_construct((HChar *)"gdbserved_addresses");
5957     gs_watches = vgPlain_HT_construct((HChar *)"gdbserved_watches");   5957     gs_watches = vgPlain_HT_construct((HChar *)"gdbserved_watches");
5958     vgPlain_atfork((void (*)(ThreadId  ))((void *)0),   5958     vgPlain_atfork((void (*)(ThreadId  ))((void *)0),
5959                    (void (*)(ThreadId  ))((void *)0),   5959                    (void (*)(ThreadId  ))((void *)0),
5960                    & gdbserver_cleanup_in_child_after_fork);   5960                    & gdbserver_cleanup_in_child_after_fork);
5961   } else {   5961   } else {
5962     5962  
5963   }   5963   }
5964   tmp___14 = __builtin_expect((long )(! (! ((unsigned int )gs_addresses != (unsigned int )((void *)0)))),   5964   tmp___14 = __builtin_expect((long )(! (! ((unsigned int )gs_addresses != (unsigned int )((void *)0)))),
5965                               1L);   5965                               1L);
5966   if (tmp___14) {   5966   if (tmp___14) {
5967     5967  
5968   } else {   5968   } else {
5969     vgPlain_assert_fail((Bool )1, (Char const   *)"gs_addresses != NULL",   5969     vgPlain_assert_fail((Bool )1, (Char const   *)"gs_addresses != NULL",
5970                         (Char const   *)"m_gdbserver/m_gdbserver.c", 604,   5970                         (Char const   *)"m_gdbserver/m_gdbserver.c", 604,
5971                         (Char const   *)"call_gdbserver", "");   5971                         (Char const   *)"call_gdbserver", "");
5972   }   5972   }
5973   tmp___15 = __builtin_expect((long )(! (! ((unsigned int )gs_watches != (unsigned int )((void *)0)))),   5973   tmp___15 = __builtin_expect((long )(! (! ((unsigned int )gs_watches != (unsigned int )((void *)0)))),
5974                               1L);   5974                               1L);
5975   if (tmp___15) {   5975   if (tmp___15) {
5976     5976  
5977   } else {   5977   } else {
5978     vgPlain_assert_fail((Bool )1, (Char const   *)"gs_watches != NULL",   5978     vgPlain_assert_fail((Bool )1, (Char const   *)"gs_watches != NULL",
5979                         (Char const   *)"m_gdbserver/m_gdbserver.c", 605,   5979                         (Char const   *)"m_gdbserver/m_gdbserver.c", 605,
5980                         (Char const   *)"call_gdbserver", "");   5980                         (Char const   *)"call_gdbserver", "");
5981   }   5981   }
5982   gdbserver_called ++;   5982   gdbserver_called ++;
5983   if (gdbserver_called == 1) {   5983   if (gdbserver_called == 1) {
5984     gdbserver_init();   5984     gdbserver_init();
5985   } else {   5985   } else {
5986     5986  
5987   }   5987   }
5988   if ((unsigned int )reason == 0U) {   5988   if ((unsigned int )reason == 0U) {
5989     remote_open((char *)vgPlain_clo_vgdb_prefix);   5989     remote_open((char *)vgPlain_clo_vgdb_prefix);
5990   } else   5990   } else
5991   if (gdbserver_called == 1) {   5991   if (gdbserver_called == 1) {
5992     remote_open((char *)vgPlain_clo_vgdb_prefix);   5992     remote_open((char *)vgPlain_clo_vgdb_prefix);
5993   } else {   5993   } else {
5994     5994  
5995   }   5995   }
5996   if ((unsigned int )reason == 0U) {   5996   if ((unsigned int )reason == 0U) {
5997     return;   5997     return;
5998   } else {   5998   } else {
5999     5999  
6000   }   6000   }
6001   tmp___16 = valgrind_single_stepping();   6001   tmp___16 = valgrind_single_stepping();
6002   stepping = (int )tmp___16;   6002   stepping = (int )tmp___16;
6003   server_main();   6003   server_main();
6004   ignore_this_break_once = valgrind_get_ignore_break_once();   6004   ignore_this_break_once = valgrind_get_ignore_break_once();
6005   if (ignore_this_break_once) {   6005   if (ignore_this_break_once) {
6006     while (1) {   6006     while (1) {
6007       tmp___18 = vgPlain_debugLog_getLevel();   6007       tmp___18 = vgPlain_debugLog_getLevel();
6008       if (tmp___18 >= 1) {   6008       if (tmp___18 >= 1) {
6009         tmp___19 = 1;   6009         tmp___19 = 1;
6010       } else {   6010       } else {
6011         tmp___19 = 0;   6011         tmp___19 = 0;
6012       }   6012       }
6013       tmp___20 = __builtin_expect((long )tmp___19, 0L);   6013       tmp___20 = __builtin_expect((long )tmp___19, 0L);
6014       if (tmp___20) {   6014       if (tmp___20) {
6015         tmp___17 = sym(ignore_this_break_once, (Bool )1);   6015         tmp___17 = sym(ignore_this_break_once, (Bool )1);
6016         vgPlain_debugLog(1, "gdbsrv", "!!! will ignore_this_break_once %s\n",   6016         vgPlain_debugLog(1, "gdbsrv", "!!! will ignore_this_break_once %s\n",
6017                          tmp___17);   6017                          tmp___17);
6018       } else {   6018       } else {
6019     6019  
6020       }   6020       }
6021       break;   6021       break;
6022     }   6022     }
6023   } else {   6023   } else {
6024     6024  
6025   }   6025   }
6026   tmp___21 = valgrind_single_stepping();   6026   tmp___21 = valgrind_single_stepping();
6027   if (tmp___21) {   6027   if (tmp___21) {
6028     if (! stepping) {   6028     if (! stepping) {
6029       if (tid != 0U) {   6029       if (tid != 0U) {
6030         invalidate_current_ip(tid, (char *)"m_gdbserver single step");   6030         invalidate_current_ip(tid, (char *)"m_gdbserver single step");
6031       } else {   6031       } else {
6032     6032  
6033       }   6033       }
6034     } else {   6034     } else {
6035     6035  
6036     }   6036     }
6037   } else   6037   } else
6038   if (stepping) {   6038   if (stepping) {
6039     clear_gdbserved_addresses((Bool )1);   6039     clear_gdbserved_addresses((Bool )1);
6040   } else {   6040   } else {
6041     6041  
6042   }   6042   }
6043   if (gdbserver_called > 1) {   6043   if (gdbserver_called > 1) {
6044     vgPlain_sanity_check_general((Bool )0);   6044     vgPlain_sanity_check_general((Bool )0);
6045   } else {   6045   } else {
6046     6046  
6047   }   6047   }
6048   tmp___29 = vgPlain_get_IP(tid);   6048   tmp___29 = vgPlain_get_IP(tid);
6049   if (tmp___29 != saved_pc) {   6049   if (tmp___29 != saved_pc) {
6050     while (1) {   6050     while (1) {
6051       tmp___26 = vgPlain_debugLog_getLevel();   6051       tmp___26 = vgPlain_debugLog_getLevel();
6052       if (tmp___26 >= 1) {   6052       if (tmp___26 >= 1) {
6053         tmp___27 = 1;   6053         tmp___27 = 1;
6054       } else {   6054       } else {
6055         tmp___27 = 0;   6055         tmp___27 = 0;
6056       }   6056       }
6057       tmp___28 = __builtin_expect((long )tmp___27, 0L);   6057       tmp___28 = __builtin_expect((long )tmp___27, 0L);
6058       if (tmp___28) {   6058       if (tmp___28) {
6059         tmp___22 = vgPlain_get_IP(tid);   6059         tmp___22 = vgPlain_get_IP(tid);
6060         tmp___23 = sym(tmp___22, (Bool )1);   6060         tmp___23 = sym(tmp___22, (Bool )1);
6061         tmp___24 = sym(saved_pc, (Bool )1);   6061         tmp___24 = sym(saved_pc, (Bool )1);
6062         tmp___25 = vgPlain_name_of_ThreadStatus(tst->status);   6062         tmp___25 = vgPlain_name_of_ThreadStatus(tst->status);
6063         vgPlain_debugLog(1, "gdbsrv", "tid %d %s PC changed from %s to %s\n",   6063         vgPlain_debugLog(1, "gdbsrv", "tid %d %s PC changed from %s to %s\n",
6064                          tid, tmp___25, tmp___24, tmp___23);   6064                          tid, tmp___25, tmp___24, tmp___23);
6065       } else {   6065       } else {
6066     6066  
6067       }   6067       }
6068       break;   6068       break;
6069     }   6069     }
6070     if ((unsigned int )tst->status == 4U) {   6070     if ((unsigned int )tst->status == 4U) {
6071       vgPlain_memset((void *)(& sres), 0, (SizeT )sizeof(SysRes ));   6071       vgPlain_memset((void *)(& sres), 0, (SizeT )sizeof(SysRes ));
6072       vgPlain_acquire_BigLock(tid, (HChar *)"gdbsrv VG_MINIMAL_LONGJMP");   6072       vgPlain_acquire_BigLock(tid, (HChar *)"gdbsrv VG_MINIMAL_LONGJMP");
6073     } else {   6073     } else {
6074     6074  
6075     }   6075     }
6076     if (tst->sched_jmpbuf_valid) {   6076     if (tst->sched_jmpbuf_valid) {
6077       __builtin_longjmp(tst->sched_jmpbuf, 1);   6077       __builtin_longjmp(tst->sched_jmpbuf, 1);
6078     } else {   6078     } else {
6079     6079  
6080     }   6080     }
6081   } else {   6081   } else {
6082     6082  
6083   }   6083   }
6084   return;   6084   return;
6085 }   6085 }
6086 }   6086 }
6087 static int volatile   busy  =    (int volatile   )0;   6087 static int volatile   busy  =    (int volatile   )0;
6088 void vgPlain_gdbserver(ThreadId tid )   6088 void vgPlain_gdbserver(ThreadId tid )
6089 {   6089 {
6090   Int tmp ;   6090   Int tmp ;
6091   int tmp___0 ;   6091   int tmp___0 ;
6092   long tmp___1 ;   6092   long tmp___1 ;
6093   Int tmp___2 ;   6093   Int tmp___2 ;
6094   int tmp___3 ;   6094   int tmp___3 ;
6095   long tmp___4 ;   6095   long tmp___4 ;
6096     6096  
6097   {   6097   {
6098   busy += (int volatile   )1;   6098   busy += (int volatile   )1;
6099   if (tid != 0U) {   6099   if (tid != 0U) {
6100     call_gdbserver(tid, (CallReason )2);   6100     call_gdbserver(tid, (CallReason )2);
6101   } else   6101   } else
6102   if (gdbserver_called == 0) {   6102   if (gdbserver_called == 0) {
6103     while (1) {   6103     while (1) {
6104       tmp = vgPlain_debugLog_getLevel();   6104       tmp = vgPlain_debugLog_getLevel();
6105       if (tmp >= 1) {   6105       if (tmp >= 1) {
6106         tmp___0 = 1;   6106         tmp___0 = 1;
6107       } else {   6107       } else {
6108         tmp___0 = 0;   6108         tmp___0 = 0;
6109       }   6109       }
6110       tmp___1 = __builtin_expect((long )tmp___0, 0L);   6110       tmp___1 = __builtin_expect((long )tmp___0, 0L);
6111       if (tmp___1) {   6111       if (tmp___1) {
6112         vgPlain_debugLog(1, "gdbsrv",   6112         vgPlain_debugLog(1, "gdbsrv",
6113                          "VG_(gdbserver) called to terminate, nothing to terminate\n");   6113                          "VG_(gdbserver) called to terminate, nothing to terminate\n");
6114       } else {   6114       } else {
6115     6115  
6116       }   6116       }
6117       break;   6117       break;
6118     }   6118     }
6119   } else   6119   } else
6120   if (gdbserver_exited) {   6120   if (gdbserver_exited) {
6121     while (1) {   6121     while (1) {
6122       tmp___2 = vgPlain_debugLog_getLevel();   6122       tmp___2 = vgPlain_debugLog_getLevel();
6123       if (tmp___2 >= 0) {   6123       if (tmp___2 >= 0) {
6124         tmp___3 = 1;   6124         tmp___3 = 1;
6125       } else {   6125       } else {
6126         tmp___3 = 0;   6126         tmp___3 = 0;
6127       }   6127       }
6128       tmp___4 = __builtin_expect((long )tmp___3, 0L);   6128       tmp___4 = __builtin_expect((long )tmp___3, 0L);
6129       if (tmp___4) {   6129       if (tmp___4) {
6130         vgPlain_debugLog(0, "gdbsrv",   6130         vgPlain_debugLog(0, "gdbsrv",
6131                          "VG_(gdbserver) called to terminate again %d\n",   6131                          "VG_(gdbserver) called to terminate again %d\n",
6132                          gdbserver_exited);   6132                          gdbserver_exited);
6133       } else {   6133       } else {
6134     6134  
6135       }   6135       }
6136       break;   6136       break;
6137     }   6137     }
6138   } else {   6138   } else {
6139     gdbserver_terminate();   6139     gdbserver_terminate();
6140     gdbserver_exited ++;   6140     gdbserver_exited ++;
6141   }   6141   }
6142   busy -= (int volatile   )1;   6142   busy -= (int volatile   )1;
6143   return;   6143   return;
6144 }   6144 }
6145 }   6145 }
6146 static int interrupts_while_busy  =    0;   6146 static int interrupts_while_busy  =    0;
6147 static int interrupts_non_busy  =    0;   6147 static int interrupts_non_busy  =    0;
6148 static int interrupts_non_interruptible  =    0;   6148 static int interrupts_non_interruptible  =    0;
6149 static void give_control_back_to_vgdb(void)   6149 static void give_control_back_to_vgdb(void)
6150 {   6150 {
6151   long tmp ;   6151   long tmp ;
6152   Int tmp___0 ;   6152   Int tmp___0 ;
6153   Int tmp___1 ;   6153   Int tmp___1 ;
6154   long tmp___2 ;   6154   long tmp___2 ;
6155     6155  
6156   {   6156   {
6157   tmp___0 = vgPlain_getpid();   6157   tmp___0 = vgPlain_getpid();
6158   tmp___1 = vgPlain_kill(tmp___0, 5);   6158   tmp___1 = vgPlain_kill(tmp___0, 5);
6159   if (tmp___1 != 0) {   6159   if (tmp___1 != 0) {
6160     tmp = __builtin_expect(0L, 1L);   6160     tmp = __builtin_expect(0L, 1L);
6161     if (tmp) {   6161     if (tmp) {
6162     6162  
6163     } else {   6163     } else {
6164       vgPlain_assert_fail((Bool )1, (Char const   *)"0",   6164       vgPlain_assert_fail((Bool )1, (Char const   *)"0",
6165                           (Char const   *)"m_gdbserver/m_gdbserver.c", 739,   6165                           (Char const   *)"m_gdbserver/m_gdbserver.c", 739,
6166                           (Char const   *)"give_control_back_to_vgdb",   6166                           (Char const   *)"give_control_back_to_vgdb",
6167                           "SIGTRAP for vgdb could not be generated\n");   6167                           "SIGTRAP for vgdb could not be generated\n");
6168     }   6168     }
6169   } else {   6169   } else {
6170     6170  
6171   }   6171   }
6172   tmp___2 = __builtin_expect(0L, 1L);   6172   tmp___2 = __builtin_expect(0L, 1L);
6173   if (tmp___2) {   6173   if (tmp___2) {
6174     6174  
6175   } else {   6175   } else {
6176     vgPlain_assert_fail((Bool )1, (Char const   *)"0",   6176     vgPlain_assert_fail((Bool )1, (Char const   *)"0",
6177                         (Char const   *)"m_gdbserver/m_gdbserver.c", 748,   6177                         (Char const   *)"m_gdbserver/m_gdbserver.c", 748,
6178                         (Char const   *)"give_control_back_to_vgdb",   6178                         (Char const   *)"give_control_back_to_vgdb",
6179                         "vgdb did not took control. Did you kill vgdb ?\nbusy %d vgdb_interrupted_tid %d\n",   6179                         "vgdb did not took control. Did you kill vgdb ?\nbusy %d vgdb_interrupted_tid %d\n",
6180                         busy, vgdb_interrupted_tid);   6180                         busy, vgdb_interrupted_tid);
6181   }   6181   }
6182   return;   6182   return;
6183 }   6183 }
6184 }   6184 }
6185 void vgPlain_invoke_gdbserver(int check )   6185 void vgPlain_invoke_gdbserver(int check )
6186 {   6186 {
6187   int n_tid ;   6187   int n_tid ;
6188   long tmp ;   6188   long tmp ;
6189   long tmp___0 ;   6189   long tmp___0 ;
6190   Int tmp___1 ;   6190   Int tmp___1 ;
6191   int tmp___2 ;   6191   int tmp___2 ;
6192   long tmp___3 ;   6192   long tmp___3 ;
6193   Int tmp___4 ;   6193   Int tmp___4 ;
6194   int tmp___5 ;   6194   int tmp___5 ;
6195   long tmp___6 ;   6195   long tmp___6 ;
6196   long tmp___7 ;   6196   long tmp___7 ;
6197     6197  
6198   {   6198   {
6199   tmp = __builtin_expect((long )(! (! ((unsigned int )check == 2343432205U))),   6199   tmp = __builtin_expect((long )(! (! ((unsigned int )check == 2343432205U))),
6200                          1L);   6200                          1L);
6201   if (tmp) {   6201   if (tmp) {
6202     6202  
6203   } else {   6203   } else {
6204     vgPlain_assert_fail((Bool )1, (Char const   *)"check == 0x8BADF00D",   6204     vgPlain_assert_fail((Bool )1, (Char const   *)"check == 0x8BADF00D",
6205                         (Char const   *)"m_gdbserver/m_gdbserver.c", 771,   6205                         (Char const   *)"m_gdbserver/m_gdbserver.c", 771,
6206                         (Char const   *)"vgPlain_invoke_gdbserver", "");   6206                         (Char const   *)"vgPlain_invoke_gdbserver", "");
6207   }   6207   }
6208   if (busy) {   6208   if (busy) {
6209     interrupts_while_busy ++;   6209     interrupts_while_busy ++;
6210     give_control_back_to_vgdb();   6210     give_control_back_to_vgdb();
6211   } else {   6211   } else {
6212     6212  
6213   }   6213   }
6214   interrupts_non_busy ++;   6214   interrupts_non_busy ++;
6215   n_tid = 1;   6215   n_tid = 1;
6216   while (n_tid < 500) {   6216   while (n_tid < 500) {
6217     switch ((unsigned int )vgPlain_threads[n_tid].status) {   6217     switch ((unsigned int )vgPlain_threads[n_tid].status) {
6218     case 4U:   6218     case 4U:
6219     case 3U:   6219     case 3U:
6220     if (vgdb_interrupted_tid == 0U) {   6220     if (vgdb_interrupted_tid == 0U) {
6221       vgdb_interrupted_tid = (ThreadId )n_tid;   6221       vgdb_interrupted_tid = (ThreadId )n_tid;
6222     } else {   6222     } else {
6223     6223  
6224     }   6224     }
6225     break;   6225     break;
6226     case 5U:   6226     case 5U:
6227     case 0U:   6227     case 0U:
6228     break;   6228     break;
6229     case 2U:   6229     case 2U:
6230     case 1U:   6230     case 1U:
6231     interrupts_non_interruptible ++;   6231     interrupts_non_interruptible ++;
6232     vgPlain_force_vgdb_poll();   6232     vgPlain_force_vgdb_poll();
6233     give_control_back_to_vgdb();   6233     give_control_back_to_vgdb();
6234     default:   6234     default:
6235     tmp___0 = __builtin_expect(0L, 1L);   6235     tmp___0 = __builtin_expect(0L, 1L);
6236     if (tmp___0) {   6236     if (tmp___0) {
6237     6237  
6238     } else {   6238     } else {
6239       vgPlain_assert_fail((Bool )1, (Char const   *)"0",   6239       vgPlain_assert_fail((Bool )1, (Char const   *)"0",
6240                           (Char const   *)"m_gdbserver/m_gdbserver.c", 801,   6240                           (Char const   *)"m_gdbserver/m_gdbserver.c", 801,
6241                           (Char const   *)"vgPlain_invoke_gdbserver", "");   6241                           (Char const   *)"vgPlain_invoke_gdbserver", "");
6242     }   6242     }
6243     }   6243     }
6244     n_tid ++;   6244     n_tid ++;
6245   }   6245   }
6246   while (1) {   6246   while (1) {
6247     tmp___1 = vgPlain_debugLog_getLevel();   6247     tmp___1 = vgPlain_debugLog_getLevel();
6248     if (tmp___1 >= 1) {   6248     if (tmp___1 >= 1) {
6249       tmp___2 = 1;   6249       tmp___2 = 1;
6250     } else {   6250     } else {
6251       tmp___2 = 0;   6251       tmp___2 = 0;
6252     }   6252     }
6253     tmp___3 = __builtin_expect((long )tmp___2, 0L);   6253     tmp___3 = __builtin_expect((long )tmp___2, 0L);
6254     if (tmp___3) {   6254     if (tmp___3) {
6255       vgPlain_debugLog(1, "gdbsrv",   6255       vgPlain_debugLog(1, "gdbsrv",
6256                        "invoke_gdbserver running_tid %d vgdb_interrupted_tid %d\n",   6256                        "invoke_gdbserver running_tid %d vgdb_interrupted_tid %d\n",
6257                        vgPlain_running_tid, vgdb_interrupted_tid);   6257                        vgPlain_running_tid, vgdb_interrupted_tid);
6258     } else {   6258     } else {
6259     6259  
6260     }   6260     }
6261     break;   6261     break;
6262   }   6262   }
6263   call_gdbserver(vgdb_interrupted_tid, (CallReason )1);   6263   call_gdbserver(vgdb_interrupted_tid, (CallReason )1);
6264   vgdb_interrupted_tid = (ThreadId )0;   6264   vgdb_interrupted_tid = (ThreadId )0;
6265   while (1) {   6265   while (1) {
6266     tmp___4 = vgPlain_debugLog_getLevel();   6266     tmp___4 = vgPlain_debugLog_getLevel();
6267     if (tmp___4 >= 1) {   6267     if (tmp___4 >= 1) {
6268       tmp___5 = 1;   6268       tmp___5 = 1;
6269     } else {   6269     } else {
6270       tmp___5 = 0;   6270       tmp___5 = 0;
6271     }   6271     }
6272     tmp___6 = __builtin_expect((long )tmp___5, 0L);   6272     tmp___6 = __builtin_expect((long )tmp___5, 0L);
6273     if (tmp___6) {   6273     if (tmp___6) {
6274       vgPlain_debugLog(1, "gdbsrv", "exit invoke_gdbserver running_tid %d\n",   6274       vgPlain_debugLog(1, "gdbsrv", "exit invoke_gdbserver running_tid %d\n",
6275                        vgPlain_running_tid);   6275                        vgPlain_running_tid);
6276     } else {   6276     } else {
6277     6277  
6278     }   6278     }
6279     break;   6279     break;
6280   }   6280   }
6281   give_control_back_to_vgdb();   6281   give_control_back_to_vgdb();
6282   tmp___7 = __builtin_expect(0L, 1L);   6282   tmp___7 = __builtin_expect(0L, 1L);
6283   if (tmp___7) {   6283   if (tmp___7) {
6284     6284  
6285   } else {   6285   } else {
6286     vgPlain_assert_fail((Bool )1, (Char const   *)"0",   6286     vgPlain_assert_fail((Bool )1, (Char const   *)"0",
6287                         (Char const   *)"m_gdbserver/m_gdbserver.c", 817,   6287                         (Char const   *)"m_gdbserver/m_gdbserver.c", 817,
6288                         (Char const   *)"vgPlain_invoke_gdbserver",   6288                         (Char const   *)"vgPlain_invoke_gdbserver",
6289                         "end of invoke_gdbserver reached");   6289                         "end of invoke_gdbserver reached");
6290   }   6290   }
6291   return;   6291   return;
6292 }   6292 }
6293 }   6293 }
6294 Bool vgPlain_gdbserver_activity(ThreadId tid )   6294 Bool vgPlain_gdbserver_activity(ThreadId tid )
6295 {   6295 {
6296   Bool ret ;   6296   Bool ret ;
6297   int tmp ;   6297   int tmp ;
6298   long tmp___0 ;   6298   long tmp___0 ;
6299     6299  
6300   {   6300   {
6301   busy += (int volatile   )1;   6301   busy += (int volatile   )1;
6302   if (! gdbserver_called) {   6302   if (! gdbserver_called) {
6303     call_gdbserver(tid, (CallReason )0);   6303     call_gdbserver(tid, (CallReason )0);
6304   } else {   6304   } else {
6305     6305  
6306   }   6306   }
6307   tmp = remote_desc_activity((char *)"VG_(gdbserver_activity)");   6307   tmp = remote_desc_activity((char *)"VG_(gdbserver_activity)");
6308   switch (tmp) {   6308   switch (tmp) {
6309   case 0:   6309   case 0:
6310   ret = (Bool )0;   6310   ret = (Bool )0;
6311   break;   6311   break;
6312   case 1:   6312   case 1:
6313   ret = (Bool )1;   6313   ret = (Bool )1;
6314   break;   6314   break;
6315   case 2:   6315   case 2:
6316   call_gdbserver(tid, (CallReason )0);   6316   call_gdbserver(tid, (CallReason )0);
6317   ret = (Bool )0;   6317   ret = (Bool )0;
6318   break;   6318   break;
6319   default:   6319   default:
6320   tmp___0 = __builtin_expect(0L, 1L);   6320   tmp___0 = __builtin_expect(0L, 1L);
6321   if (tmp___0) {   6321   if (tmp___0) {
6322     6322  
6323   } else {   6323   } else {
6324     vgPlain_assert_fail((Bool )1, (Char const   *)"0",   6324     vgPlain_assert_fail((Bool )1, (Char const   *)"0",
6325                         (Char const   *)"m_gdbserver/m_gdbserver.c", 831,   6325                         (Char const   *)"m_gdbserver/m_gdbserver.c", 831,
6326                         (Char const   *)"vgPlain_gdbserver_activity", "");   6326                         (Char const   *)"vgPlain_gdbserver_activity", "");
6327   }   6327   }
6328   }   6328   }
6329   busy -= (int volatile   )1;   6329   busy -= (int volatile   )1;
6330   return (ret);   6330   return (ret);
6331 }   6331 }
6332 }   6332 }
6333 Bool vgPlain_gdbserver_report_signal(Int sigNo , ThreadId tid )   6333 Bool vgPlain_gdbserver_report_signal(Int sigNo , ThreadId tid )
6334 {   6334 {
6335   Int tmp ;   6335   Int tmp ;
6336   int tmp___0 ;   6336   int tmp___0 ;
6337   long tmp___1 ;   6337   long tmp___1 ;
6338   Int tmp___2 ;   6338   Int tmp___2 ;
6339   int tmp___3 ;   6339   int tmp___3 ;
6340   long tmp___4 ;   6340   long tmp___4 ;
6341   Bool tmp___5 ;   6341   Bool tmp___5 ;
6342   Int tmp___6 ;   6342   Int tmp___6 ;
6343   int tmp___7 ;   6343   int tmp___7 ;
6344   long tmp___8 ;   6344   long tmp___8 ;
6345   Int tmp___9 ;   6345   Int tmp___9 ;
6346   int tmp___10 ;   6346   int tmp___10 ;
6347   long tmp___11 ;   6347   long tmp___11 ;
6348   Int tmp___12 ;   6348   Int tmp___12 ;
6349   int tmp___13 ;   6349   int tmp___13 ;
6350   long tmp___14 ;   6350   long tmp___14 ;
6351   Bool tmp___15 ;   6351   Bool tmp___15 ;
6352     6352  
6353   {   6353   {
6354   while (1) {   6354   while (1) {
6355     tmp = vgPlain_debugLog_getLevel();   6355     tmp = vgPlain_debugLog_getLevel();
6356     if (tmp >= 1) {   6356     if (tmp >= 1) {
6357       tmp___0 = 1;   6357       tmp___0 = 1;
6358     } else {   6358     } else {
6359       tmp___0 = 0;   6359       tmp___0 = 0;
6360     }   6360     }
6361     tmp___1 = __builtin_expect((long )tmp___0, 0L);   6361     tmp___1 = __builtin_expect((long )tmp___0, 0L);
6362     if (tmp___1) {   6362     if (tmp___1) {
6363       vgPlain_debugLog(1, "gdbsrv", "signal %d tid %d\n", sigNo, tid);   6363       vgPlain_debugLog(1, "gdbsrv", "signal %d tid %d\n", sigNo, tid);
6364     } else {   6364     } else {
6365     6365  
6366     }   6366     }
6367     break;   6367     break;
6368   }   6368   }
6369   tmp___5 = remote_connected();   6369   tmp___5 = remote_connected();
6370   if (tmp___5) {   6370   if (tmp___5) {
6371     6371  
6372   } else {   6372   } else {
6373     while (1) {   6373     while (1) {
6374       tmp___2 = vgPlain_debugLog_getLevel();   6374       tmp___2 = vgPlain_debugLog_getLevel();
6375       if (tmp___2 >= 1) {   6375       if (tmp___2 >= 1) {
6376         tmp___3 = 1;   6376         tmp___3 = 1;
6377       } else {   6377       } else {
6378         tmp___3 = 0;   6378         tmp___3 = 0;
6379       }   6379       }
6380       tmp___4 = __builtin_expect((long )tmp___3, 0L);   6380       tmp___4 = __builtin_expect((long )tmp___3, 0L);
6381       if (tmp___4) {   6381       if (tmp___4) {
6382         vgPlain_debugLog(1, "gdbsrv", "not connected => pass\n");   6382         vgPlain_debugLog(1, "gdbsrv", "not connected => pass\n");
6383       } else {   6383       } else {
6384     6384  
6385       }   6385       }
6386       break;   6386       break;
6387     }   6387     }
6388     return ((Bool )1);   6388     return ((Bool )1);
6389   }   6389   }
6390   if (pass_signals[sigNo]) {   6390   if (pass_signals[sigNo]) {
6391     while (1) {   6391     while (1) {
6392       tmp___6 = vgPlain_debugLog_getLevel();   6392       tmp___6 = vgPlain_debugLog_getLevel();
6393       if (tmp___6 >= 1) {   6393       if (tmp___6 >= 1) {
6394         tmp___7 = 1;   6394         tmp___7 = 1;
6395       } else {   6395       } else {
6396         tmp___7 = 0;   6396         tmp___7 = 0;
6397       }   6397       }
6398       tmp___8 = __builtin_expect((long )tmp___7, 0L);   6398       tmp___8 = __builtin_expect((long )tmp___7, 0L);
6399       if (tmp___8) {   6399       if (tmp___8) {
6400         vgPlain_debugLog(1, "gdbsrv", "pass_signals => pass\n");   6400         vgPlain_debugLog(1, "gdbsrv", "pass_signals => pass\n");
6401       } else {   6401       } else {
6402     6402  
6403       }   6403       }
6404       break;   6404       break;
6405     }   6405     }
6406     return ((Bool )0);   6406     return ((Bool )0);
6407   } else {   6407   } else {
6408     6408  
6409   }   6409   }
6410   gdbserver_signal_encountered(sigNo);   6410   gdbserver_signal_encountered(sigNo);
6411   call_gdbserver(tid, (CallReason )5);   6411   call_gdbserver(tid, (CallReason )5);
6412   tmp___15 = gdbserver_deliver_signal(sigNo);   6412   tmp___15 = gdbserver_deliver_signal(sigNo);
6413   if (tmp___15) {   6413   if (tmp___15) {
6414     while (1) {   6414     while (1) {
6415       tmp___9 = vgPlain_debugLog_getLevel();   6415       tmp___9 = vgPlain_debugLog_getLevel();
6416       if (tmp___9 >= 1) {   6416       if (tmp___9 >= 1) {
6417         tmp___10 = 1;   6417         tmp___10 = 1;
6418       } else {   6418       } else {
6419         tmp___10 = 0;   6419         tmp___10 = 0;
6420       }   6420       }
6421       tmp___11 = __builtin_expect((long )tmp___10, 0L);   6421       tmp___11 = __builtin_expect((long )tmp___10, 0L);
6422       if (tmp___11) {   6422       if (tmp___11) {
6423         vgPlain_debugLog(1, "gdbsrv", "gdbserver deliver signal\n");   6423         vgPlain_debugLog(1, "gdbsrv", "gdbserver deliver signal\n");
6424       } else {   6424       } else {
6425     6425  
6426       }   6426       }
6427       break;   6427       break;
6428     }   6428     }
6429     return ((Bool )1);   6429     return ((Bool )1);
6430   } else {   6430   } else {
6431     while (1) {   6431     while (1) {
6432       tmp___12 = vgPlain_debugLog_getLevel();   6432       tmp___12 = vgPlain_debugLog_getLevel();
6433       if (tmp___12 >= 1) {   6433       if (tmp___12 >= 1) {
6434         tmp___13 = 1;   6434         tmp___13 = 1;
6435       } else {   6435       } else {
6436         tmp___13 = 0;   6436         tmp___13 = 0;
6437       }   6437       }
6438       tmp___14 = __builtin_expect((long )tmp___13, 0L);   6438       tmp___14 = __builtin_expect((long )tmp___13, 0L);
6439       if (tmp___14) {   6439       if (tmp___14) {
6440         vgPlain_debugLog(1, "gdbsrv", "gdbserver ignore signal\n");   6440         vgPlain_debugLog(1, "gdbsrv", "gdbserver ignore signal\n");
6441       } else {   6441       } else {
6442     6442  
6443       }   6443       }
6444       break;   6444       break;
6445     }   6445     }
6446     return ((Bool )0);   6446     return ((Bool )0);
6447   }   6447   }
6448 }   6448 }
6449 }   6449 }
6450 void ( __attribute__((__regparm__(1))) vgPlain_helperc_CallDebugger)(HWord iaddr )   6450 void ( __attribute__((__regparm__(1))) vgPlain_helperc_CallDebugger)(HWord iaddr )
6451 {   6451 {
6452   GS_Address *g ;   6452   GS_Address *g ;
6453   char *tmp ;   6453   char *tmp ;
6454   Int tmp___0 ;   6454   Int tmp___0 ;
6455   int tmp___1 ;   6455   int tmp___1 ;
6456   long tmp___2 ;   6456   long tmp___2 ;
6457   ThreadId tmp___3 ;   6457   ThreadId tmp___3 ;
6458   Addr tmp___4 ;   6458   Addr tmp___4 ;
6459   Bool tmp___5 ;   6459   Bool tmp___5 ;
6460   Addr tmp___6 ;   6460   Addr tmp___6 ;
6461   void *tmp___7 ;   6461   void *tmp___7 ;
6462     6462  
6463   {   6463   {
6464   if (! gdbserver_called) {   6464   if (! gdbserver_called) {
6465     return;   6465     return;
6466   } else {   6466   } else {
6467     6467  
6468   }   6468   }
6469   tmp___5 = valgrind_single_stepping();   6469   tmp___5 = valgrind_single_stepping();
6470   if (tmp___5) {   6470   if (tmp___5) {
6471     goto _L;   6471     goto _L;
6472   } else {   6472   } else {
6473     tmp___6 = HT_addr(iaddr);   6473     tmp___6 = HT_addr(iaddr);
6474     tmp___7 = vgPlain_HT_lookup(gs_addresses, tmp___6);   6474     tmp___7 = vgPlain_HT_lookup(gs_addresses, tmp___6);
6475     g = (GS_Address *)tmp___7;   6475     g = (GS_Address *)tmp___7;
6476     if (g) {   6476     if (g) {
6477       if ((unsigned int )g->kind == 0U) {   6477       if ((unsigned int )g->kind == 0U) {
6478         _L: /* CIL Label */   6478         _L: /* CIL Label */
6479         tmp___4 = HT_addr(ignore_this_break_once);   6479         tmp___4 = HT_addr(ignore_this_break_once);
6480         if (iaddr == tmp___4) {   6480         if (iaddr == tmp___4) {
6481           while (1) {   6481           while (1) {
6482             tmp___0 = vgPlain_debugLog_getLevel();   6482             tmp___0 = vgPlain_debugLog_getLevel();
6483             if (tmp___0 >= 1) {   6483             if (tmp___0 >= 1) {
6484               tmp___1 = 1;   6484               tmp___1 = 1;
6485             } else {   6485             } else {
6486               tmp___1 = 0;   6486               tmp___1 = 0;
6487             }   6487             }
6488             tmp___2 = __builtin_expect((long )tmp___1, 0L);   6488             tmp___2 = __builtin_expect((long )tmp___1, 0L);
6489             if (tmp___2) {   6489             if (tmp___2) {
6490               tmp = sym(ignore_this_break_once, (Bool )1);   6490               tmp = sym(ignore_this_break_once, (Bool )1);
6491               vgPlain_debugLog(1, "gdbsrv",   6491               vgPlain_debugLog(1, "gdbsrv",
6492                                "ignoring ignore_this_break_once %s\n", tmp);   6492                                "ignoring ignore_this_break_once %s\n", tmp);
6493             } else {   6493             } else {
6494     6494  
6495             }   6495             }
6496             break;   6496             break;
6497           }   6497           }
6498           ignore_this_break_once = (Addr )0;   6498           ignore_this_break_once = (Addr )0;
6499         } else {   6499         } else {
6500           tmp___3 = vgPlain_get_running_tid();   6500           tmp___3 = vgPlain_get_running_tid();
6501           call_gdbserver(tmp___3, (CallReason )3);   6501           call_gdbserver(tmp___3, (CallReason )3);
6502         }   6502         }
6503       } else {   6503       } else {
6504     6504  
6505       }   6505       }
6506     } else {   6506     } else {
6507     6507  
6508     }   6508     }
6509   }   6509   }
6510   return;   6510   return;
6511 }   6511 }
6512 }   6512 }
6513 static void vgPlain_invalidate_if_not_gdbserved(Addr addr )   6513 static void vgPlain_invalidate_if_not_gdbserved(Addr addr )
6514 {   6514 {
6515   Bool tmp ;   6515   Bool tmp ;
6516     6516  
6517   {   6517   {
6518   tmp = valgrind_single_stepping();   6518   tmp = valgrind_single_stepping();
6519   if (tmp) {   6519   if (tmp) {
6520     invalidate_if_jump_not_yet_gdbserved(addr,   6520     invalidate_if_jump_not_yet_gdbserved(addr,
6521                                          (char *)"gdbserver target jump (instrument)");   6521                                          (char *)"gdbserver target jump (instrument)");
6522   } else {   6522   } else {
6523     6523  
6524   }   6524   }
6525   return;   6525   return;
6526 }   6526 }
6527 }   6527 }
6528 void ( __attribute__((__regparm__(1))) vgPlain_helperc_invalidate_if_not_gdbserved)(Addr addr )   6528 void ( __attribute__((__regparm__(1))) vgPlain_helperc_invalidate_if_not_gdbserved)(Addr addr )
6529 {   6529 {
6530   Bool tmp ;   6530   Bool tmp ;
6531     6531  
6532   {   6532   {
6533   tmp = valgrind_single_stepping();   6533   tmp = valgrind_single_stepping();
6534   if (tmp) {   6534   if (tmp) {
6535     invalidate_if_jump_not_yet_gdbserved(addr,   6535     invalidate_if_jump_not_yet_gdbserved(addr,
6536                                          (char *)"gdbserver target jump (runtime)");   6536                                          (char *)"gdbserver target jump (runtime)");
6537   } else {   6537   } else {
6538     6538  
6539   }   6539   }
6540   return;   6540   return;
6541 }   6541 }
6542 }   6542 }
6543 static void vgPlain_add_stmt_call_invalidate_if_not_gdbserved(IRSB *sb_in ,   6543 static void vgPlain_add_stmt_call_invalidate_if_not_gdbserved(IRSB *sb_in ,
6544                                                               VexGuestLayout *layout ,   6544                                                               VexGuestLayout *layout ,
6545                                                               VexGuestExtents *vge ,   6545                                                               VexGuestExtents *vge ,
6546                                                               IRTemp jmp ,   6546                                                               IRTemp jmp ,
6547                                                               IRSB *irsb )   6547                                                               IRSB *irsb )
6548 {   6548 {
6549   void *fn ;   6549   void *fn ;
6550   HChar *nm ;   6550   HChar *nm ;
6551   IRExpr **args ;   6551   IRExpr **args ;
6552   Int nargs ;   6552   Int nargs ;
6553   IRDirty *di ;   6553   IRDirty *di ;
6554   IRExpr *tmp ;   6554   IRExpr *tmp ;
6555   void *tmp___0 ;   6555   void *tmp___0 ;
6556   IRStmt *tmp___1 ;   6556   IRStmt *tmp___1 ;
6557     6557  
6558   {   6558   {
6559   fn = (void *)(& vgPlain_helperc_invalidate_if_not_gdbserved);   6559   fn = (void *)(& vgPlain_helperc_invalidate_if_not_gdbserved);
6560   nm = (HChar *)"VG_(helperc_invalidate_if_not_gdbserved)";   6560   nm = (HChar *)"VG_(helperc_invalidate_if_not_gdbserved)";
6561   tmp = IRExpr_RdTmp(jmp);   6561   tmp = IRExpr_RdTmp(jmp);
6562   args = mkIRExprVec_1(tmp);   6562   args = mkIRExprVec_1(tmp);
6563   nargs = 1;   6563   nargs = 1;
6564   tmp___0 = vgPlain_fnptr_to_fnentry(fn);   6564   tmp___0 = vgPlain_fnptr_to_fnentry(fn);
6565   di = unsafeIRDirty_0_N(nargs, nm, tmp___0, args);   6565   di = unsafeIRDirty_0_N(nargs, nm, tmp___0, args);
6566   di->nFxState = 0;   6566   di->nFxState = 0;
6567   tmp___1 = IRStmt_Dirty(di);   6567   tmp___1 = IRStmt_Dirty(di);
6568   addStmtToIRSB(irsb, tmp___1);   6568   addStmtToIRSB(irsb, tmp___1);
6569   return;   6569   return;
6570 }   6570 }
6571 }   6571 }
6572 static void vgPlain_add_stmt_call_gdbserver(IRSB *sb_in ,   6572 static void vgPlain_add_stmt_call_gdbserver(IRSB *sb_in ,
6573                                             VexGuestLayout *layout ,   6573                                             VexGuestLayout *layout ,
6574                                             VexGuestExtents *vge ,   6574                                             VexGuestExtents *vge ,
6575                                             IRType gWordTy , IRType hWordTy ,   6575                                             IRType gWordTy , IRType hWordTy ,
6576                                             Addr iaddr , UChar delta ,   6576                                             Addr iaddr , UChar delta ,
6577                                             IRSB *irsb )   6577                                             IRSB *irsb )
6578 {   6578 {
6579   void *fn ;   6579   void *fn ;
6580   HChar *nm ;   6580   HChar *nm ;
6581   IRExpr **args ;   6581   IRExpr **args ;
6582   Int nargs ;   6582   Int nargs ;
6583   IRDirty *di ;   6583   IRDirty *di ;
6584   long tmp ;   6584   long tmp ;
6585   IRExpr *tmp___0 ;   6585   IRExpr *tmp___0 ;
6586   IRStmt *tmp___1 ;   6586   IRStmt *tmp___1 ;
6587   IRExpr *tmp___2 ;   6587   IRExpr *tmp___2 ;
6588   void *tmp___3 ;   6588   void *tmp___3 ;
6589   IRStmt *tmp___4 ;   6589   IRStmt *tmp___4 ;
6590     6590  
6591   {   6591   {
6592   tmp = __builtin_expect((long )(! (! ((int )delta <= 1))), 1L);   6592   tmp = __builtin_expect((long )(! (! ((int )delta <= 1))), 1L);
6593   if (tmp) {   6593   if (tmp) {
6594     6594  
6595   } else {   6595   } else {
6596     vgPlain_assert_fail((Bool )1, (Char const   *)"delta <= 1",   6596     vgPlain_assert_fail((Bool )1, (Char const   *)"delta <= 1",
6597                         (Char const   *)"m_gdbserver/m_gdbserver.c", 1000,   6597                         (Char const   *)"m_gdbserver/m_gdbserver.c", 1000,
6598                         (Char const   *)"vgPlain_add_stmt_call_gdbserver", "");   6598                         (Char const   *)"vgPlain_add_stmt_call_gdbserver", "");
6599   }   6599   }
6600   tmp___0 = mkIRExpr_HWord(iaddr + (Addr )delta);   6600   tmp___0 = mkIRExpr_HWord(iaddr + (Addr )delta);
6601   tmp___1 = IRStmt_Put(layout->offset_IP, tmp___0);   6601   tmp___1 = IRStmt_Put(layout->offset_IP, tmp___0);
6602   addStmtToIRSB(irsb, tmp___1);   6602   addStmtToIRSB(irsb, tmp___1);
6603   fn = (void *)(& vgPlain_helperc_CallDebugger);   6603   fn = (void *)(& vgPlain_helperc_CallDebugger);
6604   nm = (HChar *)"VG_(helperc_CallDebugger)";   6604   nm = (HChar *)"VG_(helperc_CallDebugger)";
6605   tmp___2 = mkIRExpr_HWord(iaddr);   6605   tmp___2 = mkIRExpr_HWord(iaddr);
6606   args = mkIRExprVec_1(tmp___2);   6606   args = mkIRExprVec_1(tmp___2);
6607   nargs = 1;   6607   nargs = 1;
6608   tmp___3 = vgPlain_fnptr_to_fnentry(fn);   6608   tmp___3 = vgPlain_fnptr_to_fnentry(fn);
6609   di = unsafeIRDirty_0_N(nargs, nm, tmp___3, args);   6609   di = unsafeIRDirty_0_N(nargs, nm, tmp___3, args);
6610   di->nFxState = 2;   6610   di->nFxState = 2;
6611   di->fxState[0].fx = (IREffect )94209;   6611   di->fxState[0].fx = (IREffect )94209;
6612   di->fxState[0].offset = layout->offset_SP;   6612   di->fxState[0].offset = layout->offset_SP;
6613   di->fxState[0].size = layout->sizeof_SP;   6613   di->fxState[0].size = layout->sizeof_SP;
6614   di->fxState[1].fx = (IREffect )94211;   6614   di->fxState[1].fx = (IREffect )94211;
6615   di->fxState[1].offset = layout->offset_IP;   6615   di->fxState[1].offset = layout->offset_IP;
6616   di->fxState[1].size = layout->sizeof_IP;   6616   di->fxState[1].size = layout->sizeof_IP;
6617   tmp___4 = IRStmt_Dirty(di);   6617   tmp___4 = IRStmt_Dirty(di);
6618   addStmtToIRSB(irsb, tmp___4);   6618   addStmtToIRSB(irsb, tmp___4);
6619   return;   6619   return;
6620 }   6620 }
6621 }   6621 }
6622 static void vgPlain_add_stmt_call_invalidate_exit_target_if_not_gdbserved(IRSB *sb_in ,   6622 static void vgPlain_add_stmt_call_invalidate_exit_target_if_not_gdbserved(IRSB *sb_in ,
6623                                                                           VexGuestLayout *layout ,   6623                                                                           VexGuestLayout *layout ,
6624                                                                           VexGuestExtents *vge ,   6624                                                                           VexGuestExtents *vge ,
6625                                                                           IRType gWordTy ,   6625                                                                           IRType gWordTy ,
6626                                                                           IRSB *irsb )   6626                                                                           IRSB *irsb )
6627 {   6627 {
6628   ULong tmp ;   6628   ULong tmp ;
6629   long tmp___0 ;   6629   long tmp___0 ;
6630     6630  
6631   {   6631   {
6632   if ((unsigned int )(sb_in->next)->tag == 86025U) {   6632   if ((unsigned int )(sb_in->next)->tag == 86025U) {
6633     if ((unsigned int )gWordTy == 69637U) {   6633     if ((unsigned int )gWordTy == 69637U) {
6634       tmp = ((sb_in->next)->Iex.Const.con)->Ico.U64;   6634       tmp = ((sb_in->next)->Iex.Const.con)->Ico.U64;
6635     } else {   6635     } else {
6636       tmp = (ULong )((sb_in->next)->Iex.Const.con)->Ico.U32;   6636       tmp = (ULong )((sb_in->next)->Iex.Const.con)->Ico.U32;
6637     }   6637     }
6638     vgPlain_invalidate_if_not_gdbserved((Addr )tmp);   6638     vgPlain_invalidate_if_not_gdbserved((Addr )tmp);
6639   } else   6639   } else
6640   if ((unsigned int )(sb_in->next)->tag == 86019U) {   6640   if ((unsigned int )(sb_in->next)->tag == 86019U) {
6641     vgPlain_add_stmt_call_invalidate_if_not_gdbserved(sb_in, layout, vge,   6641     vgPlain_add_stmt_call_invalidate_if_not_gdbserved(sb_in, layout, vge,
6642                                                       (sb_in->next)->Iex.RdTmp.tmp,   6642                                                       (sb_in->next)->Iex.RdTmp.tmp,
6643                                                       irsb);   6643                                                       irsb);
6644   } else {   6644   } else {
6645     tmp___0 = __builtin_expect(0L, 1L);   6645     tmp___0 = __builtin_expect(0L, 1L);
6646     if (tmp___0) {   6646     if (tmp___0) {
6647     6647  
6648     } else {   6648     } else {
6649       vgPlain_assert_fail((Bool )1, (Char const   *)"0",   6649       vgPlain_assert_fail((Bool )1, (Char const   *)"0",
6650                           (Char const   *)"m_gdbserver/m_gdbserver.c", 1055,   6650                           (Char const   *)"m_gdbserver/m_gdbserver.c", 1055,
6651                           (Char const   *)"vgPlain_add_stmt_call_invalidate_exit_target_if_not_gdbserved",   6651                           (Char const   *)"vgPlain_add_stmt_call_invalidate_exit_target_if_not_gdbserved",
6652                           "");   6652                           "");
6653     }   6653     }
6654   }   6654   }
6655   return;   6655   return;
6656 }   6656 }
6657 }   6657 }
6658 IRSB *vgPlain_instrument_for_gdbserver_if_needed(IRSB *sb_in ,   6658 IRSB *vgPlain_instrument_for_gdbserver_if_needed(IRSB *sb_in ,
6659                                                  VexGuestLayout *layout ,   6659                                                  VexGuestLayout *layout ,
6660                                                  VexGuestExtents *vge ,   6660                                                  VexGuestExtents *vge ,
6661                                                  IRType gWordTy ,   6661                                                  IRType gWordTy ,
6662                                                  IRType hWordTy )   6662                                                  IRType hWordTy )
6663 {   6663 {
6664   IRSB *sb_out ;   6664   IRSB *sb_out ;
6665   Int i ;   6665   Int i ;
6666   VgVgdb instr_needed ;   6666   VgVgdb instr_needed ;
6667   VgVgdb tmp ;   6667   VgVgdb tmp ;
6668   IRStmt *st ;   6668   IRStmt *st ;
6669   ULong tmp___0 ;   6669   ULong tmp___0 ;
6670   long tmp___1 ;   6670   long tmp___1 ;
6671   long tmp___2 ;   6671   long tmp___2 ;
6672     6672  
6673   {   6673   {
6674   tmp = vgPlain_gdbserver_instrumentation_needed(vge);   6674   tmp = vgPlain_gdbserver_instrumentation_needed(vge);
6675   instr_needed = tmp;   6675   instr_needed = tmp;
6676   if ((unsigned int )instr_needed == 0U) {   6676   if ((unsigned int )instr_needed == 0U) {
6677     return (sb_in);   6677     return (sb_in);
6678   } else {   6678   } else {
6679     6679  
6680   }   6680   }
6681   sb_out = deepCopyIRSBExceptStmts(sb_in);   6681   sb_out = deepCopyIRSBExceptStmts(sb_in);
6682   i = 0;   6682   i = 0;
6683   while (i < sb_in->stmts_used) {   6683   while (i < sb_in->stmts_used) {
6684     st = *(sb_in->stmts + i);   6684     st = *(sb_in->stmts + i);
6685     if (! st) {   6685     if (! st) {
6686       goto __Cont;   6686       goto __Cont;
6687     } else   6687     } else
6688     if ((unsigned int )st->tag == 102400U) {   6688     if ((unsigned int )st->tag == 102400U) {
6689       goto __Cont;   6689       goto __Cont;
6690     } else {   6690     } else {
6691     6691  
6692     }   6692     }
6693     if ((unsigned int )st->tag == 102411U) {   6693     if ((unsigned int )st->tag == 102411U) {
6694       if ((unsigned int )instr_needed == 1U) {   6694       if ((unsigned int )instr_needed == 1U) {
6695         if ((unsigned int )hWordTy == 69637U) {   6695         if ((unsigned int )hWordTy == 69637U) {
6696           tmp___0 = (st->Ist.Exit.dst)->Ico.U64;   6696           tmp___0 = (st->Ist.Exit.dst)->Ico.U64;
6697         } else {   6697         } else {
6698           tmp___0 = (ULong )(st->Ist.Exit.dst)->Ico.U32;   6698           tmp___0 = (ULong )(st->Ist.Exit.dst)->Ico.U32;
6699         }   6699         }
6700         vgPlain_invalidate_if_not_gdbserved((Addr )tmp___0);   6700         vgPlain_invalidate_if_not_gdbserved((Addr )tmp___0);
6701       } else {   6701       } else {
6702     6702  
6703       }   6703       }
6704     } else {   6704     } else {
6705     6705  
6706     }   6706     }
6707     addStmtToIRSB(sb_out, st);   6707     addStmtToIRSB(sb_out, st);
6708     if ((unsigned int )st->tag == 102401U) {   6708     if ((unsigned int )st->tag == 102401U) {
6709       switch ((unsigned int )instr_needed) {   6709       switch ((unsigned int )instr_needed) {
6710       case 0U:   6710       case 0U:
6711       tmp___1 = __builtin_expect(0L, 1L);   6711       tmp___1 = __builtin_expect(0L, 1L);
6712       if (tmp___1) {   6712       if (tmp___1) {
6713     6713  
6714       } else {   6714       } else {
6715         vgPlain_assert_fail((Bool )1, (Char const   *)"0",   6715         vgPlain_assert_fail((Bool )1, (Char const   *)"0",
6716                             (Char const   *)"m_gdbserver/m_gdbserver.c", 1091,   6716                             (Char const   *)"m_gdbserver/m_gdbserver.c", 1091,
6717                             (Char const   *)"vgPlain_instrument_for_gdbserver_if_needed",   6717                             (Char const   *)"vgPlain_instrument_for_gdbserver_if_needed",
6718                             "");   6718                             "");
6719       }   6719       }
6720       case 2U:   6720       case 2U:
6721       case 1U:   6721       case 1U:
6722       vgPlain_add_stmt_call_gdbserver(sb_in, layout, vge, gWordTy, hWordTy,   6722       vgPlain_add_stmt_call_gdbserver(sb_in, layout, vge, gWordTy, hWordTy,
6723                                       (Addr )st->Ist.IMark.addr,   6723                                       (Addr )st->Ist.IMark.addr,
6724                                       st->Ist.IMark.delta, sb_out);   6724                                       st->Ist.IMark.delta, sb_out);
6725       break;   6725       break;
6726       default:   6726       default:
6727       tmp___2 = __builtin_expect(0L, 1L);   6727       tmp___2 = __builtin_expect(0L, 1L);
6728       if (tmp___2) {   6728       if (tmp___2) {
6729     6729  
6730       } else {   6730       } else {
6731         vgPlain_assert_fail((Bool )1, (Char const   *)"0",   6731         vgPlain_assert_fail((Bool )1, (Char const   *)"0",
6732                             (Char const   *)"m_gdbserver/m_gdbserver.c", 1108,   6732                             (Char const   *)"m_gdbserver/m_gdbserver.c", 1108,
6733                             (Char const   *)"vgPlain_instrument_for_gdbserver_if_needed",   6733                             (Char const   *)"vgPlain_instrument_for_gdbserver_if_needed",
6734                             "");   6734                             "");
6735       }   6735       }
6736       }   6736       }
6737     } else {   6737     } else {
6738     6738  
6739     }   6739     }
6740     __Cont: /* CIL Label */   6740     __Cont: /* CIL Label */
6741     i ++;   6741     i ++;
6742   }   6742   }
6743   if ((unsigned int )instr_needed == 1U) {   6743   if ((unsigned int )instr_needed == 1U) {
6744     vgPlain_add_stmt_call_invalidate_exit_target_if_not_gdbserved(sb_in, layout,   6744     vgPlain_add_stmt_call_invalidate_exit_target_if_not_gdbserved(sb_in, layout,
6745                                                                   vge, gWordTy,   6745                                                                   vge, gWordTy,
6746                                                                   sb_out);   6746                                                                   sb_out);
6747   } else {   6747   } else {
6748     6748  
6749   }   6749   }
6750   return (sb_out);   6750   return (sb_out);
6751 }   6751 }
6752 }   6752 }
6753 static void mon_out(HChar c , void *opaque )   6753 static void mon_out(HChar c , void *opaque )
6754 {   6754 {
6755   struct mon_out_buf *b ;   6755   struct mon_out_buf *b ;
6756     6756  
6757   {   6757   {
6758   b = (struct mon_out_buf *)opaque;   6758   b = (struct mon_out_buf *)opaque;
6759   (b->ret) ++;   6759   (b->ret) ++;
6760   b->buf[b->next] = c;   6760   b->buf[b->next] = c;
6761   (b->next) ++;   6761   (b->next) ++;
6762   if (b->next == 8189) {   6762   if (b->next == 8189) {
6763     b->buf[b->next] = (char )'\000';   6763     b->buf[b->next] = (char )'\000';
6764     monitor_output(b->buf);   6764     monitor_output(b->buf);
6765     b->next = 0;   6765     b->next = 0;
6766   } else {   6766   } else {
6767     6767  
6768   }   6768   }
6769   return;   6769   return;
6770 }   6770 }
6771 }   6771 }
6772 UInt ( /* format attribute */  vgPlain_gdb_printf)(HChar const   *format  , ...)   6772 UInt ( /* format attribute */  vgPlain_gdb_printf)(HChar const   *format  , ...)
6773 {   6773 {
6774   struct mon_out_buf b ;   6774   struct mon_out_buf b ;
6775   va_list vargs ;   6775   va_list vargs ;
6776     6776  
6777   {   6777   {
6778   b.next = 0;   6778   b.next = 0;
6779   b.ret = (UInt )0;   6779   b.ret = (UInt )0;
6780   __builtin_va_start(vargs, format);   6780   __builtin_va_start(vargs, format);
6781   vgPlain_vcbprintf(& mon_out, (void *)(& b), format, vargs);   6781   vgPlain_vcbprintf(& mon_out, (void *)(& b), format, vargs);
6782   __builtin_va_end(vargs);   6782   __builtin_va_end(vargs);
6783   if (b.next > 0) {   6783   if (b.next > 0) {
6784     b.buf[b.next] = (char )'\000';   6784     b.buf[b.next] = (char )'\000';
6785     monitor_output(b.buf);   6785     monitor_output(b.buf);
6786   } else {   6786   } else {
6787     6787  
6788   }   6788   }
6789   return (b.ret);   6789   return (b.ret);
6790 }   6790 }
6791 }   6791 }
6792 Int vgPlain_keyword_id(Char *keywords , Char *input_word ,   6792 Int vgPlain_keyword_id(Char *keywords , Char *input_word ,
6793                        kwd_report_error report )   6793                        kwd_report_error report )
6794 {   6794 {
6795   Int il ;   6795   Int il ;
6796   SizeT tmp ;   6796   SizeT tmp ;
6797   SizeT tmp___0 ;   6797   SizeT tmp___0 ;
6798   Char *iw ;   6798   Char *iw ;
6799   unsigned int __lengthofiw ;   6799   unsigned int __lengthofiw ;
6800   void *tmp___1 ;   6800   void *tmp___1 ;
6801   SizeT tmp___2 ;   6801   SizeT tmp___2 ;
6802   Char *kwds ;   6802   Char *kwds ;
6803   unsigned int __lengthofkwds ;   6803   unsigned int __lengthofkwds ;
6804   void *tmp___3 ;   6804   void *tmp___3 ;
6805   Char *kwdssaveptr ;   6805   Char *kwdssaveptr ;
6806   Char *kw ;   6806   Char *kw ;
6807   Int kwl ;   6807   Int kwl ;
6808   Int kpos ;   6808   Int kpos ;
6809   Int pass ;   6809   Int pass ;
6810   Int pass1needed ;   6810   Int pass1needed ;
6811   Int partial_match ;   6811   Int partial_match ;
6812   Int full_match ;   6812   Int full_match ;
6813   char const   *tmp___4 ;   6813   char const   *tmp___4 ;
6814   SizeT tmp___5 ;   6814   SizeT tmp___5 ;
6815   Int tmp___6 ;   6815   Int tmp___6 ;
6816   Int tmp___7 ;   6816   Int tmp___7 ;
6817   long tmp___8 ;   6817   long tmp___8 ;
6818     6818  
6819   {   6819   {
6820   if ((unsigned int )input_word == (unsigned int )((void *)0)) {   6820   if ((unsigned int )input_word == (unsigned int )((void *)0)) {
6821     tmp___0 = (SizeT )0;   6821     tmp___0 = (SizeT )0;
6822   } else {   6822   } else {
6823     tmp = vgPlain_strlen((Char const   *)input_word);   6823     tmp = vgPlain_strlen((Char const   *)input_word);
6824     tmp___0 = tmp;   6824     tmp___0 = tmp;
6825   }   6825   }
6826   il = (Int )tmp___0;   6826   il = (Int )tmp___0;
6827   __lengthofiw = (unsigned int )(il + 1);   6827   __lengthofiw = (unsigned int )(il + 1);
6828   tmp___1 = __builtin_alloca(sizeof(*iw) * __lengthofiw);   6828   tmp___1 = __builtin_alloca(sizeof(*iw) * __lengthofiw);
6829   iw = (Char *)tmp___1;   6829   iw = (Char *)tmp___1;
6830   tmp___2 = vgPlain_strlen((Char const   *)keywords);   6830   tmp___2 = vgPlain_strlen((Char const   *)keywords);
6831   __lengthofkwds = (unsigned int )(tmp___2 + 1UL);   6831   __lengthofkwds = (unsigned int )(tmp___2 + 1UL);
6832   tmp___3 = __builtin_alloca(sizeof(*kwds) * __lengthofkwds);   6832   tmp___3 = __builtin_alloca(sizeof(*kwds) * __lengthofkwds);
6833   kwds = (Char *)tmp___3;   6833   kwds = (Char *)tmp___3;
6834   kpos = -1;   6834   kpos = -1;
6835   pass1needed = 0;   6835   pass1needed = 0;
6836   partial_match = -1;   6836   partial_match = -1;
6837   full_match = -1;   6837   full_match = -1;
6838   if ((unsigned int )input_word == (unsigned int )((void *)0)) {   6838   if ((unsigned int )input_word == (unsigned int )((void *)0)) {
6839     *(iw + 0) = (Char )0;   6839     *(iw + 0) = (Char )0;
6840     partial_match = 0;   6840     partial_match = 0;
6841   } else {   6841   } else {
6842     vgPlain_strcpy(iw, (Char const   *)input_word);   6842     vgPlain_strcpy(iw, (Char const   *)input_word);
6843   }   6843   }
6844   pass = 0;   6844   pass = 0;
6845   while (pass < 2) {   6845   while (pass < 2) {
6846     vgPlain_strcpy(kwds, (Char const   *)keywords);   6846     vgPlain_strcpy(kwds, (Char const   *)keywords);
6847     if (pass == 1) {   6847     if (pass == 1) {
6848       if (il == 0) {   6848       if (il == 0) {
6849         tmp___4 = "<empty string>";   6849         tmp___4 = "<empty string>";
6850       } else {   6850       } else {
6851         tmp___4 = (char const   *)((char *)iw);   6851         tmp___4 = (char const   *)((char *)iw);
6852       }   6852       }
6853       vgPlain_gdb_printf("%s can match", tmp___4);   6853       vgPlain_gdb_printf("%s can match", tmp___4);
6854     } else {   6854     } else {
6855     6855  
6856     }   6856     }
6857     kw = vgPlain_strtok_r(kwds, (Char const   *)" ", & kwdssaveptr);   6857     kw = vgPlain_strtok_r(kwds, (Char const   *)" ", & kwdssaveptr);
6858     while ((unsigned int )kw != (unsigned int )((void *)0)) {   6858     while ((unsigned int )kw != (unsigned int )((void *)0)) {
6859       tmp___5 = vgPlain_strlen((Char const   *)kw);   6859       tmp___5 = vgPlain_strlen((Char const   *)kw);
6860       kwl = (Int )tmp___5;   6860       kwl = (Int )tmp___5;
6861       kpos ++;   6861       kpos ++;
6862       if (il > kwl) {   6862       if (il > kwl) {
6863     6863  
6864       } else   6864       } else
6865       if (il == kwl) {   6865       if (il == kwl) {
6866         tmp___6 = vgPlain_strcmp((Char const   *)kw, (Char const   *)iw);   6866         tmp___6 = vgPlain_strcmp((Char const   *)kw, (Char const   *)iw);
6867         if (tmp___6 == 0) {   6867         if (tmp___6 == 0) {
6868           if (pass == 1) {   6868           if (pass == 1) {
6869             vgPlain_gdb_printf(" %s", kw);   6869             vgPlain_gdb_printf(" %s", kw);
6870           } else {   6870           } else {
6871     6871  
6872           }   6872           }
6873           if (full_match != -1) {   6873           if (full_match != -1) {
6874             pass1needed ++;   6874             pass1needed ++;
6875           } else {   6875           } else {
6876     6876  
6877           }   6877           }
6878           full_match = kpos;   6878           full_match = kpos;
6879         } else {   6879         } else {
6880     6880  
6881         }   6881         }
6882       } else {   6882       } else {
6883         tmp___7 = vgPlain_strncmp((Char const   *)iw, (Char const   *)kw,   6883         tmp___7 = vgPlain_strncmp((Char const   *)iw, (Char const   *)kw,
6884                                   (SizeT )il);   6884                                   (SizeT )il);
6885         if (tmp___7 == 0) {   6885         if (tmp___7 == 0) {
6886           if (pass == 1) {   6886           if (pass == 1) {
6887             vgPlain_gdb_printf(" %s", kw);   6887             vgPlain_gdb_printf(" %s", kw);
6888           } else {   6888           } else {
6889     6889  
6890           }   6890           }
6891           if (partial_match != -1) {   6891           if (partial_match != -1) {
6892             pass1needed ++;   6892             pass1needed ++;
6893           } else {   6893           } else {
6894     6894  
6895           }   6895           }
6896           partial_match = kpos;   6896           partial_match = kpos;
6897         } else {   6897         } else {
6898     6898  
6899         }   6899         }
6900       }   6900       }
6901       kw = vgPlain_strtok_r((Char *)((void *)0), (Char const   *)" ",   6901       kw = vgPlain_strtok_r((Char *)((void *)0), (Char const   *)" ",
6902                             & kwdssaveptr);   6902                             & kwdssaveptr);
6903     }   6903     }
6904     if (pass1needed == 0) {   6904     if (pass1needed == 0) {
6905       if (full_match != -1) {   6905       if (full_match != -1) {
6906         return (full_match);   6906         return (full_match);
6907       } else {   6907       } else {
6908         if ((unsigned int )report == 1U) {   6908         if ((unsigned int )report == 1U) {
6909           if (partial_match == -1) {   6909           if (partial_match == -1) {
6910             vgPlain_gdb_printf("%s does not match any of \'%s\'\n", iw, keywords);   6910             vgPlain_gdb_printf("%s does not match any of \'%s\'\n", iw, keywords);
6911           } else {   6911           } else {
6912     6912  
6913           }   6913           }
6914         } else {   6914         } else {
6915     6915  
6916         }   6916         }
6917         return (partial_match);   6917         return (partial_match);
6918       }   6918       }
6919     } else {   6919     } else {
6920     6920  
6921     }   6921     }
6922     if (pass == 1) {   6922     if (pass == 1) {
6923       goto _L;   6923       goto _L;
6924     } else   6924     } else
6925     if ((unsigned int )report == 0U) {   6925     if ((unsigned int )report == 0U) {
6926       _L: /* CIL Label */   6926       _L: /* CIL Label */
6927       if ((unsigned int )report != 0U) {   6927       if ((unsigned int )report != 0U) {
6928         vgPlain_gdb_printf("\n");   6928         vgPlain_gdb_printf("\n");
6929       } else {   6929       } else {
6930     6930  
6931       }   6931       }
6932       if (partial_match != -1) {   6932       if (partial_match != -1) {
6933         return (-2);   6933         return (-2);
6934       } else   6934       } else
6935       if (full_match != -1) {   6935       if (full_match != -1) {
6936         return (-2);   6936         return (-2);
6937       } else {   6937       } else {
6938         return (-1);   6938         return (-1);
6939       }   6939       }
6940     } else {   6940     } else {
6941     6941  
6942     }   6942     }
6943     pass ++;   6943     pass ++;
6944   }   6944   }
6945   tmp___8 = __builtin_expect(0L, 1L);   6945   tmp___8 = __builtin_expect(0L, 1L);
6946   if (tmp___8) {   6946   if (tmp___8) {
6947     6947  
6948   } else {   6948   } else {
6949     vgPlain_assert_fail((Bool )1, (Char const   *)"0",   6949     vgPlain_assert_fail((Bool )1, (Char const   *)"0",
6950                         (Char const   *)"m_gdbserver/m_gdbserver.c", 1245,   6950                         (Char const   *)"m_gdbserver/m_gdbserver.c", 1245,
6951                         (Char const   *)"vgPlain_keyword_id", "");   6951                         (Char const   *)"vgPlain_keyword_id", "");
6952   }   6952   }
6953   return (0);   6953   return (0);
6954 }   6954 }
6955 }   6955 }
6956 static Bool is_zero_x(Char *s )   6956 static Bool is_zero_x(Char *s )
6957 {   6957 {
6958   SizeT tmp ;   6958   SizeT tmp ;
6959     6959  
6960   {   6960   {
6961   tmp = vgPlain_strlen((Char const   *)s);   6961   tmp = vgPlain_strlen((Char const   *)s);
6962   if (tmp >= 3UL) {   6962   if (tmp >= 3UL) {
6963     if ((int )*(s + 0) == 48) {   6963     if ((int )*(s + 0) == 48) {
6964       if ((int )*(s + 1) == 120) {   6964       if ((int )*(s + 1) == 120) {
6965         return ((Bool )1);   6965         return ((Bool )1);
6966       } else {   6966       } else {
6967         return ((Bool )0);   6967         return ((Bool )0);
6968       }   6968       }
6969     } else {   6969     } else {
6970       return ((Bool )0);   6970       return ((Bool )0);
6971     }   6971     }
6972   } else {   6972   } else {
6973     return ((Bool )0);   6973     return ((Bool )0);
6974   }   6974   }
6975 }   6975 }
6976 }   6976 }
6977 static Bool is_zero_b(Char *s )   6977 static Bool is_zero_b(Char *s )
6978 {   6978 {
6979   SizeT tmp ;   6979   SizeT tmp ;
6980     6980  
6981   {   6981   {
6982   tmp = vgPlain_strlen((Char const   *)s);   6982   tmp = vgPlain_strlen((Char const   *)s);
6983   if (tmp >= 3UL) {   6983   if (tmp >= 3UL) {
6984     if ((int )*(s + 0) == 48) {   6984     if ((int )*(s + 0) == 48) {
6985       if ((int )*(s + 1) == 98) {   6985       if ((int )*(s + 1) == 98) {
6986         return ((Bool )1);   6986         return ((Bool )1);
6987       } else {   6987       } else {
6988         return ((Bool )0);   6988         return ((Bool )0);
6989       }   6989       }
6990     } else {   6990     } else {
6991       return ((Bool )0);   6991       return ((Bool )0);
6992     }   6992     }
6993   } else {   6993   } else {
6994     return ((Bool )0);   6994     return ((Bool )0);
6995   }   6995   }
6996 }   6996 }
6997 }   6997 }
6998 void vgPlain_strtok_get_address_and_size(Addr *address , SizeT *szB ,   6998 void vgPlain_strtok_get_address_and_size(Addr *address , SizeT *szB ,
6999                                          Char **ssaveptr )   6999                                          Char **ssaveptr )
7000 {   7000 {
7001   Char *wa ;   7001   Char *wa ;
7002   Char *ws ;   7002   Char *ws ;
7003   Char *endptr ;   7003   Char *endptr ;
7004   UChar *ppc ;   7004   UChar *ppc ;
7005   Bool tmp ;   7005   Bool tmp ;
7006   ULong tmp___0 ;   7006   ULong tmp___0 ;
7007   Int j ;   7007   Int j ;
7008   Char *parsews ;   7008   Char *parsews ;
7009   Int n_bits ;   7009   Int n_bits ;
7010   SizeT tmp___1 ;   7010   SizeT tmp___1 ;
7011   ULong tmp___2 ;   7011   ULong tmp___2 ;
7012   Bool tmp___3 ;   7012   Bool tmp___3 ;
7013   Bool tmp___4 ;   7013   Bool tmp___4 ;
7014     7014  
7015   {   7015   {
7016   wa = vgPlain_strtok_r((Char *)((void *)0), (Char const   *)" ", ssaveptr);   7016   wa = vgPlain_strtok_r((Char *)((void *)0), (Char const   *)" ", ssaveptr);
7017   ppc = (UChar *)wa;   7017   ppc = (UChar *)wa;
7018   if ((unsigned int )ppc == (unsigned int )((void *)0)) {   7018   if ((unsigned int )ppc == (unsigned int )((void *)0)) {
7019     vgPlain_gdb_printf("missing or malformed address\n");   7019     vgPlain_gdb_printf("missing or malformed address\n");
7020     *address = (Addr )0;   7020     *address = (Addr )0;
7021     *szB = (SizeT )0;   7021     *szB = (SizeT )0;
7022     return;   7022     return;
7023   } else {   7023   } else {
7024     tmp = vgPlain_parse_Addr(& ppc, address);   7024     tmp = vgPlain_parse_Addr(& ppc, address);
7025     if (tmp) {   7025     if (tmp) {
7026     7026  
7027     } else {   7027     } else {
7028       vgPlain_gdb_printf("missing or malformed address\n");   7028       vgPlain_gdb_printf("missing or malformed address\n");
7029       *address = (Addr )0;   7029       *address = (Addr )0;
7030       *szB = (SizeT )0;   7030       *szB = (SizeT )0;
7031       return;   7031       return;
7032     }   7032     }
7033   }   7033   }
7034   ws = vgPlain_strtok_r((Char *)((void *)0), (Char const   *)" ", ssaveptr);   7034   ws = vgPlain_strtok_r((Char *)((void *)0), (Char const   *)" ", ssaveptr);
7035   if ((unsigned int )ws == (unsigned int )((void *)0)) {   7035   if ((unsigned int )ws == (unsigned int )((void *)0)) {
7036     7036  
7037   } else {   7037   } else {
7038     tmp___4 = is_zero_x(ws);   7038     tmp___4 = is_zero_x(ws);
7039     if (tmp___4) {   7039     if (tmp___4) {
7040       tmp___0 = vgPlain_strtoull16(ws, & endptr);   7040       tmp___0 = vgPlain_strtoull16(ws, & endptr);
7041       *szB = (SizeT )tmp___0;   7041       *szB = (SizeT )tmp___0;
7042     } else {   7042     } else {
7043       tmp___3 = is_zero_b(ws);   7043       tmp___3 = is_zero_b(ws);
7044       if (tmp___3) {   7044       if (tmp___3) {
7045         parsews = ws;   7045         parsews = ws;
7046         tmp___1 = vgPlain_strlen((Char const   *)ws);   7046         tmp___1 = vgPlain_strlen((Char const   *)ws);
7047         n_bits = (Int )(tmp___1 - 2UL);   7047         n_bits = (Int )(tmp___1 - 2UL);
7048         *szB = (SizeT )0;   7048         *szB = (SizeT )0;
7049         ws = (Char *)((void *)0);   7049         ws = (Char *)((void *)0);
7050         j = 0;   7050         j = 0;
7051         while (j < n_bits) {   7051         while (j < n_bits) {
7052           if (48 == (int )*(parsews + (j + 2))) {   7052           if (48 == (int )*(parsews + (j + 2))) {
7053     7053  
7054           } else   7054           } else
7055           if (49 == (int )*(parsews + (j + 2))) {   7055           if (49 == (int )*(parsews + (j + 2))) {
7056             *szB |= (unsigned long )(1 << ((n_bits - j) - 1));   7056             *szB |= (unsigned long )(1 << ((n_bits - j) - 1));
7057           } else {   7057           } else {
7058             ws = parsews;   7058             ws = parsews;
7059             endptr = (ws + j) + 2;   7059             endptr = (ws + j) + 2;
7060             break;   7060             break;
7061           }   7061           }
7062           j ++;   7062           j ++;
7063         }   7063         }
7064       } else {   7064       } else {
7065         tmp___2 = vgPlain_strtoull10(ws, & endptr);   7065         tmp___2 = vgPlain_strtoull10(ws, & endptr);
7066         *szB = (SizeT )tmp___2;   7066         *szB = (SizeT )tmp___2;
7067       }   7067       }
7068     }   7068     }
7069   }   7069   }
7070   if ((unsigned int )ws != (unsigned int )((void *)0)) {   7070   if ((unsigned int )ws != (unsigned int )((void *)0)) {
7071     if ((int )*endptr != 0) {   7071     if ((int )*endptr != 0) {
7072       vgPlain_gdb_printf("malformed integer, expecting hex 0x..... or dec ...... or binary .....b\n");   7072       vgPlain_gdb_printf("malformed integer, expecting hex 0x..... or dec ...... or binary .....b\n");
7073       *address = (Addr )0;   7073       *address = (Addr )0;
7074       *szB = (SizeT )0;   7074       *szB = (SizeT )0;
7075       return;   7075       return;
7076     } else {   7076     } else {
7077     7077  
7078     }   7078     }
7079   } else {   7079   } else {
7080     7080  
7081   }   7081   }
7082   return;   7082   return;
7083 }   7083 }
7084 }   7084 }
7085 void vgPlain_gdbserver_status_output(void)   7085 void vgPlain_gdbserver_status_output(void)
7086 {   7086 {
7087   int nr_gdbserved_addresses ;   7087   int nr_gdbserved_addresses ;
7088   Int tmp ;   7088   Int tmp ;
7089   int tmp___0 ;   7089   int tmp___0 ;
7090   int nr_watchpoints ;   7090   int nr_watchpoints ;
7091   Int tmp___1 ;   7091   Int tmp___1 ;
7092   int tmp___2 ;   7092   int tmp___2 ;
7093   Bool tmp___3 ;   7093   Bool tmp___3 ;
7094     7094  
7095   {   7095   {
7096   if ((unsigned int )gs_addresses == (unsigned int )((void *)0)) {   7096   if ((unsigned int )gs_addresses == (unsigned int )((void *)0)) {
7097     tmp___0 = -1;   7097     tmp___0 = -1;
7098   } else {   7098   } else {
7099     tmp = vgPlain_HT_count_nodes(gs_addresses);   7099     tmp = vgPlain_HT_count_nodes(gs_addresses);
7100     tmp___0 = tmp;   7100     tmp___0 = tmp;
7101   }   7101   }
7102   nr_gdbserved_addresses = tmp___0;   7102   nr_gdbserved_addresses = tmp___0;
7103   if ((unsigned int )gs_watches == (unsigned int )((void *)0)) {   7103   if ((unsigned int )gs_watches == (unsigned int )((void *)0)) {
7104     tmp___2 = -1;   7104     tmp___2 = -1;
7105   } else {   7105   } else {
7106     tmp___1 = vgPlain_HT_count_nodes(gs_watches);   7106     tmp___1 = vgPlain_HT_count_nodes(gs_watches);
7107     tmp___2 = tmp___1;   7107     tmp___2 = tmp___1;
7108   }   7108   }
7109   nr_watchpoints = tmp___2;   7109   nr_watchpoints = tmp___2;
7110   remote_utils_output_status();   7110   remote_utils_output_status();
7111   tmp___3 = valgrind_single_stepping();   7111   tmp___3 = valgrind_single_stepping();
7112   vgPlain_umsg("nr of calls to gdbserver: %d\nsingle stepping %d\ninterrupts intr_tid %d gs_non_busy %d gs_busy %d tid_non_intr %d\ngdbserved addresses %d (-1 = not initialized)\nwatchpoints %d (-1 = not initialized)\nvgdb-error %d\n",   7112   vgPlain_umsg("nr of calls to gdbserver: %d\nsingle stepping %d\ninterrupts intr_tid %d gs_non_busy %d gs_busy %d tid_non_intr %d\ngdbserved addresses %d (-1 = not initialized)\nwatchpoints %d (-1 = not initialized)\nvgdb-error %d\n",
7113                gdbserver_called, (int )tmp___3, vgdb_interrupted_tid,   7113                gdbserver_called, (int )tmp___3, vgdb_interrupted_tid,
7114                interrupts_non_busy, interrupts_while_busy,   7114                interrupts_non_busy, interrupts_while_busy,
7115                interrupts_non_interruptible, nr_gdbserved_addresses,   7115                interrupts_non_interruptible, nr_gdbserved_addresses,
7116                nr_watchpoints, vgPlain_dyn_vgdb_error);   7116                nr_watchpoints, vgPlain_dyn_vgdb_error);
7117   return;   7117   return;
7118 }   7118 }
7119 }   7119 }